SyslogAppender не использует пользовательскую LayoutBase - PullRequest
0 голосов
/ 19 февраля 2019

Должно ли логбэк 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?

...