(03) SpringBoot 日志文件使用(logback)

这一生的挚爱 提交于 2019-12-07 20:34:07

SpringBoot项目使用logback.xml配置日志输出,以下配置文件是个参考:

(1) 建议启动时使用 logging.config 选项指定外部日志文件。

例如:

(1) 配置文件直接指定 logging.config: /data/apps/config/xx/ordercenter-logback.xml

(2) 启动时候动态指定 日志配置参数 : 

java -jar xx.jar --spring.profiles.active=product  --logging.config=/data/apps/config/xx/ordercenter-logback.xml

(2) configuration tag,  scan 和 scanPeriod 属性,用来说明:日志配置文件可能会变化,定期扫描加载;

(3) root节点的控制台输出 stdout_appender, 一般用于本地调试,因此使用 springProfile 条件控制;

<configuration scan="true" scanPeriod="60 seconds">


    <!-- 定义变量: 日志文件目录 和 名称 -->
    <property name="LogDir" value="/opt/logs/mysaas"/>
    <property name="BaseLogName" value="base-saas"/>
    <property name="ErrorLogName" value="error-saas"/>


    <!-- info log appender config -->
    <appender name="info_appender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LogDir}/${BaseLogName}.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LogDir}/${BaseLogName}.%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- maxHistory 设定的是 fileNamePattern 指定到的最小的分割单位; 上面指定到了天(小时),那么此处代表30天(小时) -->
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <!-- 定义log level 为 INF -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
        <encoder>
            <pattern>%d [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- error log appender config -->
    <appender name="error_appender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LogDir}/${ErrorLogName}.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LogDir}/${ErrorLogName}.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <encoder>
            <pattern>%d [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- console -->
    <appender name="stdout_appender" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 定义 LogLevel 和 Appender -->
    <root level="INFO">
        <appender-ref ref="info_appender"/>
        <appender-ref ref="error_appender"/>

        <!-- 如果本地调试(spring profiles为 dev),需要控制台看日志: 放开下面stdout_appender这一行 -->
        <springProfile name="dev">
            <appender-ref ref="stdout_appender"/>
        </springProfile>

    </root>

    <!-- third part library logger config -->
    <!-- <logger name="org.apache" level="WARN"/> -->
    <!-- <logger name="java.sql" level="debug"/>  -->
</configuration>

 

参考文档:

默认日志logback配置解析 http://tengj.top/2017/04/05/springboot7/

logback 配置详解 https://www.jianshu.com/p/1ded57f6c4e3

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!