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格式.