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