近期有用到spring的项目,日志一直有点问题,打印信息过多。于是便有了整合slf4j日志的想法,查过了很多的博客,各有不同,自己整理如下。
1.maven导入slf4j的包
<!-- slf4j + log4j 日志 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
2.在/resources下新建log4j.properties配置文件,内容如下:
# 配置根Logger
log4j.rootLogger=info, ServerDailyRollingFile, stdout
# 有关日志输出位置的配置命名
# ServerDailyRollingFile代表每天产生一个日志文件
log4j.appender.ServerDailyRollingFile=org.apache.log4j.DailyRollingFileAppender
# 设置时间格式
log4j.appender.ServerDailyRollingFile.DatePattern='.'yyyy-MM-dd
# 日志文件生成路径
log4j.appender.ServerDailyRollingFile.File=logs/notify-subscription.log
# 日志格式
# PatternLayout可以灵活指定布局模式
log4j.appender.ServerDailyRollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.ServerDailyRollingFile.layout.ConversionPattern=%d - %m%n
# 将消息增加到指定文件中,false指消息将覆盖指定文件的内容
log4j.appender.ServerDailyRollingFile.Append=true
# 配置输出到控制台
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} %p [%c] %m%n
3.使用
可以配合idea的lombok来省略
private Logger log = LoggerFactory.getLogger(CommonUtils.class);
使用@Slf4j可以免去上面这句,但是需要idea安装lombok,这个随便百度都一堆答案,就不细说了,记录下。下次就不会无头苍蝇乱走了!