一、pom引入log4j并解决Spring等三方依赖冲突:
冲突解决可以参考:
mvn dependency:tree 解决依赖冲突_奔跑的_迷彩狼的博客-CSDN博客
二、引入log4j配置文件:
配置文件内容:
#所有日志
log4j.rootLogger = DEBUG,stdout,file
log4j.logger.org.apache.ibatis=warn
log4j.logger.java.sql=warn
log4j.logger.org.springframework=warn
# Druid
log4j.logger.druid.sql=DEBUG
log4j.logger.druid.sql.DataSource=warn
log4j.logger.druid.sql.Connection=warn
log4j.logger.druid.sql.Statement=DEBUG
log4j.logger.druid.sql.ResultSet=warn
#控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.Threshold=DEBUG
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}[ %p ]%m%n
#所有文件输出
log4j.appender.file = org.apache.log4j.FileAppender
log4j.appender.file.File = ../logs/test.log
log4j.appender.file.Encoding=UTF-8
log4j.appender.file.name = fileLogDemo
log4j.appender.file.Threshold=ERROR
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}[ %p ]%m%n
log4j.appender.file.append = true
其中,Threshold表示“ERROR”级别的log会输出到本地,info和debug不会输出到本地。
File后面跟log路径。
精简一点儿:
#所有日志
log4j.rootLogger = ERROR,stdout,file
log4j.logger.org.apache.ibatis=warn
log4j.logger.java.sql=warn
log4j.logger.org.springframework=warn
#控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.Threshold=ERROR
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}[ %p ]%m%n
#所有文件输出
log4j.appender.file = org.apache.log4j.FileAppender
log4j.appender.file.File = ../logs/test.log
log4j.appender.file.Encoding=UTF-8
log4j.appender.file.name = fileLogDemo
log4j.appender.file.Threshold=ERROR
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}[ %p ]%m%n
log4j.appender.file.append = true
代码调用:
private static final Logger LOGGER = LoggerFactory.getLogger(Main.class);
LOGGER.error("ERROR: " + userId);
error的会输出到本地。
参考: