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

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

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

例如:sql

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

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

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

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

(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/code

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

相关文章
相关标签/搜索