Загрузка Spring logback-spring.xml

Может ли кто-нибудь помочь мне создать logback-spring.xml файл для этого сценария:

Журнал запуска и журнал приложения должны храниться в 2 отдельных файлах, которые постоянно обновляются. Как бы добавлялись файлы в logback-spring.xml?


person Mattias S. Nordell    schedule 13.08.2018    source источник


Ответы (2)


При таком подходе мне удалось добиться:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="APP_FILE" class="ch.qos.logback.core.FileAppender">
    <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
        <evaluator> <!-- defaults to type ch.qos.logback.classic.boolex.JaninoEventEvaluator -->
            <expression>return logger.equals("<YOUR FULL CLASS NAME FOR APPLICATION CLASS>");</expression>
        </evaluator>
        <OnMismatch>ACCEPT</OnMismatch>
        <OnMatch>DENY</OnMatch>
    </filter>

    <file>app.log</file>
    <append>true</append>
    <!-- set immediateFlush to false for much higher logging throughput -->
    <immediateFlush>true</immediateFlush>
    <encoder>
        <pattern>%d{dd-MM-yyyy HH:mm:ss.SSS} %magenta([%thread]) %highlight(%-5level) %logger{36}.%M - %msg%n</pattern>
    </encoder>
</appender>

<appender name="STARTUP_FILE" class="ch.qos.logback.core.FileAppender">
    <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
        <evaluator> <!-- defaults to type ch.qos.logback.classic.boolex.JaninoEventEvaluator -->
            <expression>return logger.equals("<YOUR FULL CLASS NAME FOR APPLICATION CLASS>");</expression>
        </evaluator>
        <OnMismatch>DENY</OnMismatch>
        <OnMatch>ACCEPT</OnMatch>
    </filter>
    <file>startup.log</file>
    <append>true</append>
    <!-- set immediateFlush to false for much higher logging throughput -->
    <immediateFlush>true</immediateFlush>
    <encoder>
        <pattern>%d{dd-MM-yyyy HH:mm:ss.SSS} %magenta([%thread]) %highlight(%-5level) %logger{36}.%M - %msg%n</pattern>
    </encoder>
</appender>

<logger name="<YOUR PACKAGE HERE>" level="debug">
    <appender-ref ref="APP_FILE" />
</logger>

<root level="info">
    <appender-ref ref="STARTUP_FILE" />
</root>

Just replacing the :

<YOUR FULL CLASS NAME FOR APPLICATION CLASS>
<YOUR PACKAGE HERE>

Пример:

com.bhrother.exampleapp.Application.class
com.bhrother.exampleapp

Здесь мы фильтруем журналы по loggerName, чтобы знать, куда должен идти каждый журнал.

person Brother    schedule 13.08.2018
comment
Привет! Отлично смотрится :) Вы знаете, как исключить определенные пакеты из фильтра? :) - person Mattias S. Nordell; 13.08.2018
comment
Не поможет, если вы добавите в XML: ‹logger name = your.unwanted.package level = OFF /›? - person Brother; 14.08.2018

person    schedule
comment
Это решило мою проблему :) Флаг аддитивности, похоже, сработал :) Ваше решение очень помогло :) - person Mattias S. Nordell; 14.08.2018