zoukankan      html  css  js  c++  java
  • Javaproject集成log4J 1.x

    log4j是Java开发平台中的日志管理工具,是Apache基金会的一个开源项目。它的作用能够简单的理解为在开发过程中替代system.out的功能。


    1、在project中集成log4j:

    (1)在官网http://logging.apache.org/log4j/2.x/download.html中下载版本号log4j-1.2.9.jar包(仅仅需加入该log4j jar包就可以)并加入到build path中

    (2)改动配置文件log4j.properties,能够百度一下。这样的资源非常多,我的配置文件例如以下:

    log4j.rootLogger =DEBUG,console,file,D,E #设置日志级别和日志输出目的地,级别仅仅能有一个。目的地能够由多个
    
    log4j.appender.console=org.apache.log4j.ConsoleAppender
    log4j.appender.console.layout=org.apache.log4j.PatternLayout
    log4j.appender.console.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
    
    #warn:before write the file log.log, clear it
    log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.file.file=./log.log
    log4j.appender.file.Append = false #注意:每次写文件前,清空,做试验用,默认值为true
    log4j.appender.file.DatePattern='.'yyyy-MM-dd
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
    #log4j.appender.file.layout=org.apache.log4j.TTCCLayout
    #org.apache.log4j.TTCCLayout do not have the property such as ConversionPattern
    
    
    #test output different log information to seperate file
    #set the DEBUG level information output to the file debug.log
    #warn:before write the file debug.log, clear it
    log4j.appender.D=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.D.file=./debug.log
    log4j.appender.D.Append = false #注意:每次写文件前,清空,做试验用,默认值为true
    log4j.appender.D.Threshold = DEBUG #仅仅有比DEBUG级别高的日志才会输出到debug.log文件里,相当于五种类型的日志都会保存到debug.log中
    log4j.appender.D.DatePattern='.'yyyy-MM-dd
    log4j.appender.D.layout=org.apache.log4j.PatternLayout
    log4j.appender.D.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
    
    #set the ERROR level information output to the file debug.log
    #warn:before write the file error.log, clear it
    log4j.appender.E=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.E.file=./error.log
    log4j.appender.E.Append = false #注意:每次写文件前,清空,做试验用,默认值为true
    log4j.appender.E.Threshold = ERROR #仅仅有比ERROR级别高的日志才会输出到error.log文件里,相当于error.log文件仅仅保存FATAL和ERROR类型的日志
    log4j.appender.E.DatePattern='.'yyyy-MM-dd
    log4j.appender.E.layout=org.apache.log4j.PatternLayout
    log4j.appender.E.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
    
    (3)优先级说明log4j中有5种优先级,须要注意的是优先级数据越小其优先级越高(0最高。7最低),当设置某种优先级后。比其高的级别日志都会输出。比如,假设在log4j.rootLogger =DEBUG,console,file,D,E设置的为DEBUG。则全部级别的日志都会输出,由于DEBUG级别最低。这点在实现不同级别的日志信息写到不同的文件时很重要。

    FATAL 0
    ERROR 3
    WARN 4
    INFO 6
    DEBUG 7

    2、log4j的初始化

    在网上搜了下。发现有三种方式进行初始化:

    (1)自己主动载入配置文件。这个对配置文件的存放位置有要求,我这里的是Java seproject。配置文件放在src文件夹下;若是放在project根文件夹下,载入失败,会出现例如以下错误:

    log4j:WARN No appenders could be found for logger (Log4jTest).
    log4j:WARN Please initialize the log4j system properly.
    (2)手动载入配置文件,在main方法里利用语句(注意依据配置文件的路径自己调整):

    PropertyConfigurator.configure("./log4j.properties");
    (3)不用配置文件。直接在代码中设置。

    关于log4j的初始化过程,有篇博客以xml格式的配置文件为例,从源代码级别上做了解释http://tiangu.iteye.com/blog/1153777


    3、log4j实现不同类型的日志输出到不同的文件

    这里必须设置log4j.appender.xxx.Threshold属性。仅仅有比该级别高的日志才会输出到该日志文件里。

    详见上面的配置文件凝视。















  • 相关阅读:
    字号、pt、px、em换算对照表
    回车自动提交 禁止回车自动提交
    working copy locked (svn)
    xUnit asp.net单元测试工具基本使用
    防御网站攻击 1
    Access restriction: The type HttpServlet is not accessible due to restriction on required library xxxx\servletapi.jar
    【转载】将sqlserver表中的数据导出sql语句或生成insert into语句
    动态切换数据源(spring+hibernate)
    MSSQL2005移植到MYSQL 5.0
    C++ Primer 4 CPP Note 2.1.1 整型和浮点型
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/6881472.html
Copyright © 2011-2022 走看看