Log4j的学习笔记

Log4j的学习笔记

Log4j支持
Java,C/C++, C#,PHP,Perl,  Python,  Ruby, Eiffel languages, LotusScript ...

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

性能

在AMD Duron 800Mhz,JDK 1.3.1的环境下,  Log4j判断要不要输出log的操作需要约5纳秒,如果使用SimpleLayout的话, 具体输出一个log需要约21毫秒, 用TTCCLayout.约37毫秒。(摘自Log4j的文档)

Log4主要有3部分组成: loggers, appenderslayouts. logger是具体执行logging命令的对象, 可以指定等级(Level), 如果没有指定logger的等级,它会继承最近上一层logger的等级设置。.appender是log输出的目的地, 比如ConsoleAppender将log输出到System.out或者System.err, FileAppender将log输出到一个文件. 了layout指定输出的格式.

例子1
 1  public   class Log4jTest1{
 2 
 3       private   static  Logger logger  =  Logger.getRootLogger();
 4 
 5       public   static   void  main(String[] args) {
 6           try  {
 7              SimpleLayout layout  =   new  SimpleLayout();
 8              ConsoleAppender consoleAppender  =   new  ConsoleAppender(layout);
 9              logger.addAppender(consoleAppender);
10              FileAppender fileAppender  =   new  FileAppender(layout,  " test.log " , false );
11
12              logger.addAppender(fileAppender);
13 
14               //  ALL | DEBUG | INFO | WARN | ERROR | FATAL | OFF:
15              logger.setLevel(Level.WARN);
16          }  catch  (Exception ex) {
17              System.out.println(ex);
18          }
19 
20          logger.debug( " A debug log " );
21          logger.info( " A info log " );
22          logger.warn( " A warn log " );
23          logger.error( " A error log " );
24          logger.fatal( " A fatal log " );
25      }
26  }

要编译和运行上面的代码你的ClASSPATH里要有log4j-version.jar.
Log4jTest1将输出下面3行到你的Console上
        WARN - A warn log
       
ERROR - A error log
        FATAL - A fatal log
因为第15行设置logger的等级是Level.WARN, 比它低的等级DEBUG和INFO就不会被输出。
例子2
例子1的logging设置信息是在代码里指定。更好的方法是在另外的描述性的文件中设置logging。Log4j支持两种配置文件,Properties格式和XML格式.

你可能感兴趣的:(Log4j的学习笔记)