spring+maven项目添加log4j和slf4j日志

6 篇文章 0 订阅

1 Pom.xml添加依赖包

slf4j-log4j12这个包依赖了slf4jlog4j,所以使用slf4j+log4j的组合只要配置上面这一个依赖就够了

 

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.21</version>
</dependency>

 

 

2 在src/main/resources下创建conf文件夹

3 修改web.xml

webAppRootKey为自动获取项目路径

<context-param>  
<param-name >webAppRootKey</param-name > 
<param-value >webApp.root </param-value > 
</context-param >
<context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>classpath:/conf/log4j.properties</param-value>
</context-param>
<listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

4 在WEB-INFO下新建logs文件夹

linux下如果文件夹不存在则不会自动创建,war包不会自动编译。所以在项目中创建好文件夹

5 在src/main/resources/conf下创建并配置配置文件文件log4j.properties

按照log优先级,记录error的日志避免日志过大。其中如果logger不指定debug或者info,则配置的日志不会自动记录


#logger
log4j.rootLogger=debug,errorLogFile
log4j.additivity.org.apache=false
# errorLog appender
log4j.appender.errorLogFile=org.apache.log4j.RollingFileAppender
log4j.appender.errorLogFile.MaxFileSize=4MB
log4j.appender.errorLogFile.Threshold=ERROR
log4j.appender.errorLogFile.ImmediateFlush=true
log4j.appender.errorLogFile.Append=true
log4j.appender.errorLogFile.File=${webApp.root}/WEB-INF/logs/errorLog.log
# errorLog layout
log4j.appender.errorLogFile.layout=org.apache.log4j.PatternLayout
log4j.appender.errorLogFile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%p] %m%n

参考:

日志配置:

https://www.cnblogs.com/ywlaker/p/6124067.html

http://www.codeceo.com/article/log4j-usage.html

自动获取项目路径:

http://elf8848.iteye.com/blog/2008595

日志等级优先级:

http://blog.csdn.net/duruiqi_fx/article/details/52689130

---------------------------------------------------------------------分割线----------------------------------------------------------------------

后续补充:

       后期查看日志,发现有中文乱码现象,是因为日志配置文件没有加上编码格式,需要加入“log4j.appender.errorLogFile.encoding=UTF-8”,更改后的配置文件内容如下

# logger
log4j.rootLogger=debug,errorLogFile
log4j.additivity.org.apache=false
# errorLog appender
log4j.appender.errorLogFile=org.apache.log4j.RollingFileAppender
log4j.appender.errorLogFile.MaxFileSize=4MB
log4j.appender.errorLogFile.Threshold=ERROR
log4j.appender.errorLogFile.ImmediateFlush=true
log4j.appender.errorLogFile.Append=true
log4j.appender.errorLogFile.File=${webApp.root}/WEB-INF/logs/errorLog.log
log4j.appender.errorLogFile.encoding=UTF-8
# errorLog layout
log4j.appender.errorLogFile.layout=org.apache.log4j.PatternLayout
log4j.appender.errorLogFile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%p] %m%n

---------------------------------------------------------------------分割线----------------------------------------------------------------------

后续补充:

       在每次打war包,发布项目,若按照最开始的设置方式会把服务器已有的log日志覆盖掉,所以采用其他路径来配置,使用${catalina.home}来设置日志存放位置,该种设置不会造成服务器可以存本地无法存,这样服务器和本地的...tomact/logs/...下面都会有日志文件,配置如下:

# logger
log4j.rootLogger=debug,errorLogFile
log4j.additivity.org.apache=false
# errorLog appender
log4j.appender.errorLogFile=org.apache.log4j.RollingFileAppender
log4j.appender.errorLogFile.MaxFileSize=4MB
log4j.appender.errorLogFile.Threshold=ERROR
log4j.appender.errorLogFile.ImmediateFlush=true
log4j.appender.errorLogFile.Append=true
log4j.appender.errorLogFile.File=${catalina.home}/logs/emrserch/error.log
log4j.appender.errorLogFile.encoding=UTF-8
# errorLog layout
log4j.appender.errorLogFile.layout=org.apache.log4j.PatternLayout
log4j.appender.errorLogFile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%p] %m%n

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值