SyslogAppender不使用自定义LayoutBase

时间:2019-02-19 15:58:25

标签: java logback rsyslog

登录的SyslogAppender是否可以使用自定义LayoutBase扩展名?

我有VedLogLayout:

public class VedLogLayout extends LayoutBase<ILoggingEvent> {

    private String version;

    @Override
    public String doLayout(ILoggingEvent event) {
        Prefix prefix = new Prefix();
        prefix.version = getVersion();
        prefix.name = event.getMessage();
        return prefix.toString() + System.lineSeparator();
    }

    public String getVersion() {
        return version;
    }

    public void setVersion(String version) {
        this.version = version;
    }
}

和logback.xml:

<appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender">
    <syslogHost>localhost</syslogHost>
    <facility>LOCAL0</facility>
    <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
        <layout class="com.nws.vedica.model.log.VedLogLayout">
            <version>${version}</version>
        </layout>
    </encoder>
</appender>

,我可以看到logback可以记录到我的rsyslog中,这只是新布局从未更改过的格式。

当我将具有自定义布局的编码器移动到STDOUT控制台附加程序时,它会输出正确的格式,并且我可以测试断点正在使用VedLogLayout

那么为什么它不适用于SyslogAppender

0 个答案:

没有答案