Logback. xml не генерирует журналы отдельно для ошибок и отладки в отдельном файле - PullRequest
1 голос
/ 17 апреля 2020

Я хочу создавать журналы в отдельном файле для разных уровней, таких как ошибки или отладки. Означает, что для отладки разрешен уровень root, журналы должны создаваться только в файле отладки. И когда для ошибки включен уровень root, журналы должны генерироваться в файле ошибок. Но для моей конфигурации logback. xml журналы генерируются в обоих файлах одновременно. Пожалуйста, помогите.

========= Ниже находится logback.xml ========

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <property name="DEV_HOME" value="logs" />

        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <layout class="ch.qos.logback.classic.PatternLayout">
                <Pattern>
                    %-5level | %d{yyyy-MM-dd HH:mm:ss,SSS} [%thread]  %logger{36} - %msg%n
                </Pattern>
            </layout>
            <!-- filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>FATAL</level>
                <onMatch>DENY</onMatch>
                <onMismatch>NEUTRAL</onMismatch>
            </filter>
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>ERROR</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>NEUTRAL</onMismatch>
            </filter>
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>WARN</level>
                <onMatch>DENY</onMatch>
                <onMismatch>NEUTRAL</onMismatch>
            </filter>
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>INFO</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>NEUTRAL</onMismatch>
            </filter-->
        </appender>
        <appender name="Recipe_DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${DEV_HOME}/Recipe_DEBUG.log</file>
            <filter class="ch.qos.logback.core.filter.ThresholdFilter">      
                <level>DEBUG</level>
        </filter>


            <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
                <Pattern>
                    %-5level | %d{yyyy-MM-dd HH:mm:ss,SSS} [%thread]  %logger{36} - %msg%n
                </Pattern>
            </encoder>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!-- rollover daily -->
                <fileNamePattern>${DEV_HOME}/archived/Recipe_DEBUG.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
                <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>10MB</maxFileSize>
                </timeBasedFileNamingAndTriggeringPolicy>
            </rollingPolicy>
        </appender>
        <appender name="Recipe_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${DEV_HOME}/Recipe_ERROR.log</file>
        <filter class="ch.qos.logback.core.filter.ThresholdFilter">      
                <level>ERROR</level>
        </filter>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>
                %-5level | %d{yyyy-MM-dd HH:mm:ss,SSS} [%thread]  %logger{36} - %msg%n
            </Pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover daily -->
            <fileNamePattern>${DEV_HOME}/archived/Recipe_ERROR.%d{yyyy-MM-dd}.%i.log
                        </fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>

    <root level="ERROR">
        <appender-ref ref="Recipe_ERROR" level="ERROR" additivity="true"/>
        <appender-ref ref="Recipe_DEBUG" level="DEBUG" additivity="true"/>
    </root>
</configuration>

1 Ответ

1 голос
/ 27 апреля 2020
There were some issues in filter and root tag, correcting and attaching the corrected file.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <property name="DEV_HOME" value="logs" />

        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <layout class="ch.qos.logback.classic.PatternLayout">
                <Pattern>
                    %-5level | %d{yyyy-MM-dd HH:mm:ss,SSS} [%thread]  %logger{36} - %msg%n
                </Pattern>
            </layout>
            <!-- filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>FATAL</level>
                <onMatch>DENY</onMatch>
                <onMismatch>NEUTRAL</onMismatch>
            </filter>
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>ERROR</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>NEUTRAL</onMismatch>
            </filter>
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>WARN</level>
                <onMatch>DENY</onMatch>
                <onMismatch>NEUTRAL</onMismatch>
            </filter>
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>INFO</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>NEUTRAL</onMismatch>
            </filter-->
        </appender>
        <appender name="Recipe_DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${DEV_HOME}/Recipe_DEBUG.log</file>
            <append>true</append>
            <!--filter class="ch.qos.logback.classic.filter.ThresholdFilter">      
                <level>DEBUG</level>
            </filter-->
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
        <level>DEBUG</level>
        <onMatch>ACCEPT</onMatch>
        <onMismatch>DENY</onMismatch>
    </filter>

            <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
                <Pattern>
                    %-5level | %d{yyyy-MM-dd HH:mm:ss,SSS} [%thread]  %logger{36} - %msg%n
                </Pattern>
            </encoder>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!-- rollover daily -->
                <fileNamePattern>${DEV_HOME}/archived/Recipe_DEBUG.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
                <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>10MB</maxFileSize>
                </timeBasedFileNamingAndTriggeringPolicy>
            </rollingPolicy>
        </appender>
        <appender name="Recipe_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${DEV_HOME}/Recipe_ERROR.log</file>
        <!--filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                <level>ERROR</level>
        </filter-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
        <level>ERROR</level>
        <onMatch>ACCEPT</onMatch>
        <onMismatch>DENY</onMismatch>
        </filter>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>
                %-5level | %d{yyyy-MM-dd HH:mm:ss,SSS} [%thread]  %logger{36} - %msg%n
            </Pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover daily -->
            <fileNamePattern>${DEV_HOME}/archived/Recipe_ERROR.%d{yyyy-MM-dd}.%i.log
                        </fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>

    <!--additivity=false ensures this log data only goes to the this log, and no one more -->
    <logger name="root" level="ERROR" additivity="false">
        <appender-ref ref="Recipe_ERROR" />
        <appender-ref ref="Recipe_DEBUG"/>
    </logger>


</configuration>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...