【问题标题】:Spring-boot - application properties configuration for log file per levelSpring-boot - 每个级别的日志文件的应用程序属性配置
【发布时间】:2019-05-16 14:05:11
【问题描述】:

我正在尝试根据日志级别获取单独的日志文件,例如。用于调试、信息、错误的单独文件

我在 application.properties 文件中的当前配置仅保存在单个文件中,每个日期

logging.file=myservice-%d{yyyyMMdd}.log
logging.level.org.springframework.boot=DEBUG
logging.level.org.springframework.web=DEBUG

我想创建单独的日志文件

  • myservice-info-20190516.log
  • myservice-debug-20190516.log
  • myservice-error-20190516.log

【问题讨论】:

    标签: java spring spring-boot logging slf4j


    【解决方案1】:

    您可以使用Logback 轻松做到这一点。您可以为每个日志级别创建不同的appenders,然后就完成了。

    【讨论】:

    • 我之前查看了此链接,但我正在寻找通过属性文件而不是 xml 执行的简单方法。如果您能分享一些 .properties 文件教程,那就太好了
    • 我猜这实际上是基本 Spring Logging 系统的限制(不是很可定制)。在我见过的 90% 的设置中,使用 Logback 来扩展日志记录功能。
    【解决方案2】:

    使用 SLF4J 外观的推荐和默认实现Logback,您需要为日志的每个级别配置appender

    <appender name="debugAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>debug.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>debug-%d{yyyy-MM-dd_HH}.log</fileNamePattern>
        </rollingPolicy>
    </appender> 
    
    <appender name="infoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>info.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>info-%d{yyyy-MM-dd_HH}.log</fileNamePattern>
        </rollingPolicy>
    </appender> 
    
    <appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>error.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>error-%d{yyyy-MM-dd_HH}.log</fileNamePattern>
        </rollingPolicy>
    </appender> 
    

    并将它们附加到按级别区分的logger

    <logger name="com.bla" level="DEBUG" additivity="true">
        <appender-ref ref="debugAppender"/>
    </logger>
    
    <logger name="com.bla" level="INFO" additivity="true">
        <appender-ref ref="infoAppender"/>
    </logger>
    
    <logger name="com.bla" level="ERROR" additivity="true">
        <appender-ref ref="errorAppender"/>
    </logger>
    

    【讨论】:

    • 在执行此步骤时,我看到相同的文件具有相同的日志以及所有信息、调试、错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-16
    • 2013-12-28
    • 2015-10-11
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    相关资源
    最近更新 更多