首页 > 代码库 > log4j

log4j

 

一、log4j  

  日志是应用软件中不可缺少的部分,Apache开源的log4j是一个功能强大的日志组件,提供了方便的日志记录功能。

  下载地址:http://jakarta.apache.org/log4j

  (一) 配置文件

    Logger类:完成日志记录,设置日志优先级

      OFF(关闭)、FATAL(严重)、ERROR(错误)、WARN(警告)、INFO(信息)、DEBUG(调试)、ALL(所有)、或者自己定义级别

      log4j.rootLogger=${logger.level},RUNTIME

      log4j.logger.INTERFACE=${logger.level},INTERFACE

      log4j.additivity.INTERFACE=false  #是否继承父Logger的输出源,默认继承

 

    Appender类决定日志去向,终端、DB、硬盘

      log4j.appender.appenderName = org.apache.log4j.ConsoleAppender

      org.apache.log4j.ConsoleAppender #控制台

      org.apache.log4j.FileAppender #文件

      org.apache.log4j.DailyRollingFileAppender #每天产生一个日志文件

      org.apache.log4j.RollingFileAppender #文件大小到达指定尺寸的时候产生一个新的文件

      org.apache.log4j.WriterAppender #将日志信息以流格式发送到任意指定的地方

    Layout类:决定日志输出格式,例如包含当前线程、行号、时间

      log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class

      org.apache.log4j.HTMLLayout #以HTML表格形式布局

      org.apache.log4j.PatternLayout #可以灵活地指定布局模式

      org.apache.log4j.SimpleLayout #包含日志信息的级别和信息字符串

      org.apache.log4j.TTCCLayout #包含日志产生的时间、线程、类别等等信息

      技术分享

 

  (二) java代码

    1. 日志记录器

public static Logger getLogger(String name);
//Logger.getLogger ( ServerWithLog4j.class.getName () )
//LoggerFactory.getLogger(this.getClass())
private static Logger logger = LoggerFactory.getLogger("INTERFACE");

 

    2. 读取配置文件

//当获取了日志记录器后,第二步读取配置文件
BasicConfigurator.configure()//自动快速地使用缺省Log4j环境。  
PropertyConfigurator.configure(String configFilename)//读取properties配置文件。  
DOMConfigurator.configure(String filename)//读取XML形式的配置文件。

 

    3. 插入记录信息

//当完成以上两个步骤后,就可以使用不同优先级的日志记录语句插入到输出源
Logger.debug (Object message);
Logger.info (Object message);  
Logger.warn (Object message);  
Logger.error (Object message);

 

 

二、log4j.properties

### 设置###
log4j.rootLogger = debug,stdout,D,E

### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

### 输出DEBUG 级别以上的日志到=E://logs/error.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = E://logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG 
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### 输出ERROR 级别以上的日志到=E://logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =E://logs/error.log 
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR 
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

 

三、java工程

  1. 导入log4的jar包

  2. log4j.properties

  3. java代码中记录日志

public class Test {

    //日志记录器
    private static Logger logger = Logger.getLogger(Test.class);  

    public static void main(String[] args) {  
        // 记录debug级别的信息  
        logger.debug("This is debug message.");  
        // 记录info级别的信息  
        logger.info("This is info message.");  
        // 记录error级别的信息  
        logger.error("This is error message.");  
    }  
}

  4. 输出结果

    首先是控制台的信息

    技术分享

    再来看输出文件的日志

    技术分享

 

 

  

四、web工程

 

五、spring工程

 

log4j