• 转: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平台为" ",Unix平台为" "输出日志信息换行 


    可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如: 
    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

  • 相关阅读:
    linux网络编程之socket编程(三)
    linux网络编程之socket编程(二)
    字符串转成时间戳
    xls的读写
    统计词语频率保存到xls
    信息时代的学习(对于人类)
    编码格式简介:ASCII码、ANSI、GBK、GB2312、GB18030和Unicode、UTF-8,BOM头
    ThinkPHP中:RBAC权限控制的实习步骤
    getField()和select()方法的区别
    按钮美化,变化显示效果
  • 原文地址:https://www.cnblogs.com/zhangshitong/p/7649570.html
Copyright © 2020-2023  润新知