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,
appenders 和
layouts. 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格式.