web项目log4j日志配置和使用

Posted IT海贼船

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web项目log4j日志配置和使用相关的知识,希望对你有一定的参考价值。

在web.xml中配置Log4j的监听和文件映射与相关设置

web.xml代码

 
   
   
 
  1. <!-- 配置log4j配置文件路径 -->  

  2. <context-param>  

  3.  <param-name>log4jConfigLocation</param-name>  

  4.  <param-value>classpath:log4j.properties</param-value>  

  5. </context-param>  

  6. <!-- 60s 检测日志配置 文件变化 -->  

  7.  <context-param>  

  8. <param-name>log4jRefreshInterval</param-name>  

  9. <param-value>60000</param-value>  

  10. </context-param>  

  11. <!-- 配置Log4j监听器 -->  

  12. <listener>  

  13. <listener-class>

  14. org.springframework.web.util.Log4jConfigListener

  15. </listener-class>

  16. </listener>

输出源的优先级以及命名,DEBUG < INFO < WARN < ERROR < FATAL

 
   
   
 
  1. log4j.rootLogger=INFO,console,FILE,infofile  

输出到控制台

 
   
   
 
  1. log4j.appender.console=org.apache.log4j.ConsoleAppender  

日志输出的最低层次

 
   
   
 
  1. log4j.appender.console.threshold=INFO  

默认表示所有的消息立即输出

 
   
   
 
  1. log4j.appender.console.ImmediateFlush = true  

布局

 
   
   
 
  1. log4j.appender.console.layout=org.apache.log4j.PatternLayout  

布局格式

 
   
   
 
  1. log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%n  

输出到文件,文件大小到达指定尺寸的时候产生一个新的文件

 
   
   
 
  1. log4j.appender.FILE=org.apache.log4j.RollingFileAppender  

日志输出的最低层次,声明为error,则进来的info中的信息中在error之前的info和warn不会输出

 
   
   
 
  1. log4j.appender.FILE.Threshold=INFO  

是否追加到文件末尾

 
   
   
 
  1. log4j.appender.FILE.Append=true  

文件路径,指定路径会自动创建文件

 
   
   
 
  1. log4j.appender.FILE.File=D://TotalDocument//logger//info.log  

布局声明

 
   
   
 
  1. log4j.appender.FILE.layout=org.apache.log4j.PatternLayout  

布局格式

 
   
   
 
  1. log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%n  

文件尺寸

 
   
   
 
  1. log4j.appender.FILE.MaxFileSize=1KB  

制定滚动文件的最大个数,放不下的文件会放到滚动文件里面并且会覆盖以前的信息

 
   
   
 
  1. log4j.appender.FILE.MaxBackupIndex=2  

定时产生滚动文件

 
   
   
 
  1. log4j.appender.infofile = org.apache.log4j.DailyRollingFileAppender  

  2. log4j.appender.infofile.Threshold = INFO  

  3. log4j.appender.infofile.File = D://TotalDocument//logger//error.log  

  4. log4j.appender.infofile.Append = true  

  5. log4j.appender.infofile.ImmediateFlush = true  

这里可以设置,是每个月每年还是每分钟产生滚动文件

 
   
   
 
  1. log4j.appender.infofile.DatePattern = '_'yyyyMMdd'.log '  

  2. log4j.appender.infofile.layout = org.apache.log4j.PatternLayout  

  3. log4j.appender.infofile.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %l %m%n  

具体的格式化信息

 
   
   
 
  1. -X号: X信息输出时左对齐;  

  2. %p: 输出日志信息优先级,即DEBUGINFOWARNERRORFATAL,  

  3. %d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:20021018 221028921  

  4. %r: 输出自应用启动到输出该log信息耗费的毫秒数  

  5. %c: 输出日志信息所属的类目,通常就是所在类的全名  

  6. %t: 输出产生该日志事件的线程名  

  7. %l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main (TestLog4.java:10)  

  8. %x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。  

  9. %%: 输出一个"%"字符  

  10. %F: 输出日志消息产生时所在的文件名称  

  11. %L: 输出代码中的行号  

  12. %m: 输出代码中指定的消息,产生的日志具体信息  

  13. %n: 输出一个回车换行符,Windows平台为"/r/n"Unix平台为"/n"输出日志信息换行  

log4j.appender.CONSOLE.Encoding=UTF-8是Log代码的编码格式

  • log4j.appender.FILE.File = ${catalina.base}/....是Log日志的位置所在,${catalina.base}是对应的tomcat实例 一般情况下${catalina.home}为tomcat 的lib/bin目录的父目录,catalina.base指 向每个Tomcat目 录私有信息的位置,就是conf、logs、temp、webapps和work的父目录。

对于Log日志的使用方法:

在java使用sql的相关方法中,在又try方法的相关类中,使用以下方式:
 
   
   
 
  1. Logger log = Logger.getLogger(this.getClass());

  2. catch中写

  3. log.error(e);

  4. 就可以将日志输出到对应的日志文件中




以上是关于web项目log4j日志配置和使用的主要内容,如果未能解决你的问题,请参考以下文章

log4j.properties 日志文件的详细配置说明

log4j无日志生成? 我将一个web项目部署在tomcat server.xml配置文件中,当我启动tomcat是无日志输出。

log4j2.xml日志文件设置文件路径

如何将web应用项目中log4j的日志只打印到独立的文件,不打印在Tomcat的catalina.out?

项目中记录log4j记录日志

日志的使用-log4j