Spring-boot-每个级别的日志文件的应用程序属性配置

时间:2019-05-16 14:05:11

标签: java spring spring-boot logging slf4j

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

我当前在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

2 个答案:

答案 0 :(得分:0)

您可以使用Logback轻松地做到这一点。您可以为每个日志级别创建不同的appenders

答案 1 :(得分:0)

使用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>
相关问题