All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.cubeengine.logscribe.target.syslog.SyslogTarget Maven / Gradle / Ivy

package org.cubeengine.logscribe.target.syslog;

import org.cubeengine.logscribe.Flushable;
import org.cubeengine.logscribe.LogEntry;
import org.cubeengine.logscribe.LogTarget;
import org.graylog2.syslog4j.Syslog;
import org.graylog2.syslog4j.SyslogConfigIF;
import org.graylog2.syslog4j.SyslogIF;

import static org.cubeengine.logscribe.MacroProcessor.processSimpleMacros;

public class SyslogTarget extends LogTarget implements Flushable
{
    private final SyslogIF syslog;

    public SyslogTarget()
    {
        this(Syslog.getInstance("udp"));
        appendFilter(new SyslogLevelFilter());
    }

    public SyslogTarget(String instanceName, SyslogConfigIF config)
    {
        this(Syslog.createInstance(instanceName, config));
    }

    public SyslogTarget(SyslogIF syslog)
    {
        this.syslog = syslog;
    }

    public SyslogIF getSysLogger()
    {
        return this.syslog;
    }

    @Override
    protected void publish(LogEntry entry)
    {
        this.syslog.log(entry.getLevel().getPriority(), processSimpleMacros(entry.getMessage(), entry.getArgs()));
    }

    public void flush()
    {
        this.syslog.flush();
    }

    @Override
    protected void onShutdown()
    {
        this.syslog.shutdown();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy