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
来源:oschina
链接:https://my.oschina.net/u/1993939/blog/1836207