转:log4j的使用简介

Posted 南开小巷

tags:

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

spring使用log4j,可以有2种方法。

1、在web.xml里不做任何配置。

log4j.properties放在classpath根目录下,

这时候生成的日志文件就没有相对路径,如果写相对路径,则会生成在安装tomcat的根路径下。

 

2、在web.xml设置。

 

 

[xml] view plain copy
 
  1. <context-param>    
  2.         <param-name>log4jConfigLocation</param-name>    
  3.         <param-value>WEB-INF/classes/log4j.properties</param-value>    
  4. </context-param>    
  5.     
  6. <context-param>    
  7.         <param-name>webAppRootKey</param-name>    
  8.         <param-value>myappfuse.root</param-value>    
  9. </context-param>    
  10.         
  11. <listener>    
  12.         <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>    
  13. </listener>    
  14. <listener>    
  15.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>    
  16. </listener>  

 

 

打印参数: Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下: 


%p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,

 

log4j.rootLogger = INFO,stdout  这句中的INFO是设置了输出该级别以上的日志

 

INFO,WARN,ERROR,FATAL等消息都会输出。哪到底每条消息是哪个级别呢?%p就是输出该条消息的级别。

 

%d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MM-dd HH:mm:ss,SSS},输出类似:2011-10-18 22:10:28,921 
%r: 输出自应用启动到输出该log信息耗费的毫秒数 
%c: 输出日志信息所属的类目,通常就是所在类的全名 
%t: 输出产生该日志事件的线程名 
%l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。 
%x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。 
%%: 输出一个"%"字符 
%F: 输出日志消息产生时所在的文件名称 
%L: 输出代码中的行号 
%m: 输出代码中指定的消息,产生的日志具体信息 
%n: 输出一个回车换行符,Windows平台为"\r\n",Unix平台为"\n"输出日志信息换行 


可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如: 
1)%20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。 
2)%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,"-"号指定左对齐。 
3)%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。 
4)%20.30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边交远销出的字符截掉

 

测试代码

[java] view plain copy
 
  1. import org.apache.log4j.Logger;  
  2. public class HelloLog4j {  
  3.  private static Logger logger = Logger.getLogger(HelloLog4j.class);  
  4.  /** 
  5.   * @param args 
  6.   */  
  7.  public static void main(String[] args) {  
  8.   // System.out.println("This is println message.");  
  9.     
  10.   // 记录debug级别的信息  
  11.   logger.debug("This is debug message.");  
  12.   // 记录info级别的信息  
  13.   logger.info("This is info message.");  
  14.   // 记录error级别的信息  
  15.   logger.error("This is error message.");  
  16.  }  
  17. }  

 

Log4j写入数据库详解

 http://blog.csdn.net/ziruobing/article/details/3919501

 

Log4j学习汇总—–配置详解

http://blog.csdn.net/meng2602956882/article/details/16951643

以上是关于转:log4j的使用简介的主要内容,如果未能解决你的问题,请参考以下文章

(转)Log4J日志配置详解

Log4j配置详解(转)

(转)log4j使用介绍

log4j日志配置

log4j Logger 使用简介

(转)log4j——如何控制日志信息的输出?