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

1 Pom.xml添加依赖包

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

 


    org.slf4j
    slf4j-log4j12
    1.7.21

 

 

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

spring+maven项目添加log4j和slf4j日志_第1张图片

3 修改web.xml

webAppRootKey为自动获取项目路径

  
webAppRootKey 
webApp.root  


    log4jConfigLocation
    classpath:/conf/log4j.properties


    org.springframework.web.util.Log4jConfigListener

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

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

spring+maven项目添加log4j和slf4j日志_第2张图片

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

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


spring+maven项目添加log4j和slf4j日志_第3张图片

#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

spring+maven项目添加log4j和slf4j日志_第4张图片spring+maven项目添加log4j和slf4j日志_第5张图片

你可能感兴趣的:(Java,Spring)