Выходные данные j4 log4j дублируются в текстовом формате - PullRequest
0 голосов
/ 18 декабря 2018

Мне действительно нужна помощь по работе с журналом log4j.Я никогда не работал с log4j прежде, и я наследую этот код.Когда выполняется вызов API, журнал выводится как на консоль, так и в файл журнала.Файл журнала корректен, но консоль получает сообщение об ошибке сначала в формате json (хотел!), А затем в текстовом формате по нескольким строкам (не хотел!).

Я прочитал другуюпосты в SO об этом, и я понимаю, я думаю, что это как-то связано с регистратором, отправляющим журнал по умолчанию в дополнение к appender.Большинство предложений говорят о таких вещах, как установка аддитивности к ложному и т. Д., Но у меня все это есть, и я все еще не могу удалить вторую, нежелательную, текстовую ошибку вывода.

Хотелось бы приветствоватьлюбые предложения!

<property name="FILE_PATH" value="/usr/local/tomcat/logs" />

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
    <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
        <providers>
            <timestamp/>
            <version/>
            <pattern>
                <pattern>
                    {"date": "%date{dd MMM yyyy HH:mm:ss.SSS XX}", "class": "%c", "level": "%p", "thread": "%t", "message": "%m", "map": "%mdc"}
                </pattern>
            </pattern>
        </providers>
    </encoder>
</appender>

<appender name="FILE-AUDIT" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${FILE_PATH}/enrollment.log</file>
    <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>[%date{dd MMM yyyy HH:mm:ss.SSS XX}] %c %p [%t] %m {%mdc}%n</Pattern>
    </layout>
    <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
        <providers>
            <timestamp/>
            <version/>
            <pattern>
                <pattern>
                    {"date": "%date{dd MMM yyyy HH:mm:ss.SSS XX}", "class": "%c", "level": "%p", "thread": "%t", "message": "%m", "map": "%mdc"}
                </pattern>
            </pattern>
        </providers>
    </encoder>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- rollover daily -->
        <fileNamePattern>${FILE_PATH}/archived/enrollment.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy
            class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>100MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>
</appender>


<!-- Send logs to both console and file audit -->
<logger name="com.package" level="info" additivity="false">
    <appender-ref ref="FILE-AUDIT" />
    <appender-ref ref="STDOUT" />
</logger>
<root level="info">
    <appender-ref ref="FILE-AUDIT" />
    <appender-ref ref="STDOUT" />
</root>

...