【问题标题】:Spring Boot logback-spring.xmlSpring Boot logback-spring.xml
【发布时间】:2019-01-19 23:01:30
【问题描述】:

谁能帮我为这个场景创建一个logback-spring.xml 文件:

启动日志和应用程序日志应记录到 2 个单独的文件中,这些文件会不断更新。文件附加程序在logback-spring.xml 中的外观如何?

【问题讨论】:

    标签: xml spring-boot logging spring-logback


    【解决方案1】:

    我设法用这种方法实现了:

    <?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>
    

    只是替换:

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

    例子:

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

    在这里,我们通过 loggerName 过滤日志,以了解每个日志的位置。

    【讨论】:

    • 您好!看起来不错:) 你知道如何在过滤器中排除特定的包吗?:)
    • 如果你在 XML 中添加它没有帮助: ?
    【解决方案2】:
        <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE xml>
    <configuration>
        <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
        <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
    
        <appender name="ROLLING-FILE"
                  class="ch.qos.logback.core.rolling.RollingFileAppender">
            <encoder>
                <pattern>
                  some pattern
                </pattern>
            </encoder>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--daily rollover -->
                <fileNamePattern>some pattern</fileNamePattern>
            </rollingPolicy>
        </appender>
        <appender name="STARTUP"
                  class="ch.qos.logback.core.rolling.RollingFileAppender">
            <encoder>
                <pattern>
                    ${CONSOLE_LOG_PATTERN}
                </pattern>
            </encoder>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>some pattern</fileNamePattern>
            </rollingPolicy>
        </appender>
        <logger name="SOME PACKAGE" level="INFO" additivity="false">
            <appender-ref ref="CONSOLE"/>
            <appender-ref ref="ROLLING-FILE"/>
        </logger>
        <root level="INFO">
            <appender-ref ref="CONSOLE"/>
            <appender-ref ref="STARTUP"/>
        </root>
    </configuration>
    

    【讨论】:

    • 这解决了我的问题:) 可加性标志似乎完成了这项工作:) 你的解决方案帮助了很多:)
    猜你喜欢
    • 2018-11-07
    • 2017-05-08
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 2017-09-07
    • 2019-03-15
    相关资源
    最近更新 更多