默认配置
application.properties中设置spring.output.ansi.enabled参数来支持多才输出。
NEVER:禁用ANSI-colored输出(默认项)
DETECT:会检查终端是否支持ANSI,是的话就采用彩色输出(推荐项)
ALWAYS:总是使用ANSI-colored格式输出,若终端不支持的时候,会有很多干扰信息,不推荐使用
文件输出(日志文件会在10Mb大小的时候被截断,产生新的日志文件)
logging.file,设置文件,可以是绝对路径,也可以是相对路径
logging.path,设置目录,会在该目录下创建spring.log文件,并写入日志内容
级别控制(格式:logging.level.*=LEVEL)
logging.level:日志级别控制前缀,*为包名或Logger名
LEVEL:选项TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF
自定义日志配置(不同日志系统组织配置文件名规则)
日志服务并非必须通过Spring的配置文件控制,一般都在ApplicationContext创建前就初始化了。通过系统属性和传统的Spring Boot外部配置文件依然可以很好的支持日志控制和管理。Spring Boot官方推荐优先使用带有-spring的文件名作为你的日志配置。
Logback:logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy
Log4j:log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml
Log4j2:log4j2-spring.xml, log4j2.xml
JDK (Java Util Logging):logging.properties
Spring boot中使用log4j记录
排除pring Boot默认的日志框架Logback,依赖于架包spring-boot-starter-logging中,再引入log4j的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
</dependency>
在src/main/resources目录下加入log4j.properties配置文件。
控制台输出
输出到文件
分类输出
通过添加如下的appender内容,按天输出到不同的文件中去,同时还需要为log4j.rootCategory添加名为file的appender,这样root日志就可以输出到logs/allLog.log文件中了。
# LOG4J配置
log4j.rootCategory=INFO, stdout, file, errorfile
log4j.category.com.base=DEBUG, didifile
log4j.logger.error=errorfile
# 控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n
# root日志输出
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.file=logs/allLog.log
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n
# error日志输出
log4j.appender.errorfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.errorfile.file=logs/error.log
log4j.appender.errorfile.DatePattern='.'yyyy-MM-dd
log4j.appender.errorfile.Threshold = ERROR
log4j.appender.errorfile.layout=org.apache.log4j.PatternLayout
log4j.appender.errorfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n
# com.base包下的日志输出
log4j.appender.didifile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.didifile.file=logs/base.log
log4j.appender.didifile.DatePattern='.'yyyy-MM-dd
log4j.appender.didifile.layout=org.apache.log4j.PatternLayout
log4j.appender.didifile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L ---- %m%n
多环境配置
创建多个环境配置文件
1.创建application.properties文件,属性:spring.profiles.active=dev(默认激活dev)
2.创建application-dev.properties文件,属性:logging.level.com.base=DEBUG(日志级别、包com.base、输出到名为didifile定义的appender中)
3.动态改版DEBUG级别,修改log4j.properties属性:log4j.category.com.base=DEBUG, didifile
变更为:log4j.category.com.base=${logging.level.com.base}, didifile
注:通过命令加参数修改日志级别:java -jar xxx.jar --spring.profiles.active=prod