Spring Boot配置logback文件

Spring Boot logback 大约 3306 字

logback.xml

  • ${user.dir}/logs:日志输出在jar包同级目录下的logs文件夹中。
  • RollingFileAppender:按日压缩日志文件。
  • maxHistory:保留5天的压缩文件。
  • AsyncAppender:异步写文件。
  • queueSize:异步写文件线程池大小。
  • discardingThreshold:当队列大小小于0时丢弃TRACEDEBUGINFO级别日志,设置0等同于保留全部级别。
  • neverBlock:队列满了将直接返回,而不是挂起线程。

jar包方式部署

生产环境jar包部署时,一般都指定了> /dev/null 2>&1将输出流丢弃,故配置了console-appender在生产环境时都直接不输出了。而在测试环境则可以在控制台看到正常日志输出,便于观察。

若生产环境不指定> /dev/null 2>&1,将会输出到同级目录下得nohup.out文件中。

Spring Boot环境建议重命名为logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>

    <property name="logPath" value="${user.dir}/logs"/>

    <appender name="FILE_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${logPath}/log-info.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${logPath}/history-log-%d{yyyy-MM-dd}.zip</FileNamePattern>
            <maxHistory>5</maxHistory>
        </rollingPolicy>
        <encoder>
            <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n</Pattern>
        </encoder>
    </appender>

    <appender name="FILE_APPENDER_ASYNC" class="ch.qos.logback.classic.AsyncAppender">
        <discardingThreshold>0</discardingThreshold>
        <queueSize>12000</queueSize>
        <neverBlock>true</neverBlock>
        <appender-ref ref ="FILE_APPENDER"/>
    </appender>

    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE_APPENDER_ASYNC"/>
    </root>

    <logger name="com.example" level="DEBUG"/>
</configuration>

war包方式部署

相比于jar包方式部署的配置,去除了defaults.xmlconsole-appender.xml以及<appender-ref ref="CONSOLE"/>,这样可以保证日志不在catalina.out中输出。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <property name="logPath" value="${catalina.base}/logs"/>

    <appender name="FILE_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${logPath}/log-info.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${logPath}/history-log-%d{yyyy-MM-dd}.zip</FileNamePattern>
            <maxHistory>5</maxHistory>
        </rollingPolicy>
        <encoder>
            <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n</Pattern>
        </encoder>
    </appender>

    <appender name="FILE_APPENDER_ASYNC" class="ch.qos.logback.classic.AsyncAppender">
        <discardingThreshold>0</discardingThreshold>
        <queueSize>12000</queueSize>
        <neverBlock>true</neverBlock>
        <appender-ref ref ="FILE_APPENDER"/>
    </appender>

    <root level="INFO">
        <appender-ref ref="FILE_APPENDER_ASYNC"/>
    </root>

    <logger name="com.wostore" level="INFO"/>
</configuration>
阅读 255 · 发布于 2020-12-09

————        END        ————

扫描下方二维码关注公众号和小程序↓↓↓

扫描二维码关注我
昵称:
随便看看 换一批