1 import java.util.*;
2 import java.io.*;
3 import org.apache.log4j.Logger;
4 import org.apache.log4j.BasicConfigurator;
5 import org.apache.log4j.PropertyConfigurator;
6 import org.apache.log4j.Priority;
7
8 public class TestLog4j
9 {
10 protected TestLog4j ()
11 {
12 String path = System.getProperty ("user.dir",".");
13 System.out.println("!!!!"+path);
14 path += "\\..\\source\\TestLog4j\\log4j.properties";
15 System.out.println ("???"+path);
16 PropertyConfigurator.configure (path);
17 Logger log = Logger.getLogger (getClass().getName ());
18 log.info ("test in TestLog4j.java ");
19 // return logger;
20 }
21 }
22
2 import java.io.*;
3 import org.apache.log4j.Logger;
4 import org.apache.log4j.BasicConfigurator;
5 import org.apache.log4j.PropertyConfigurator;
6 import org.apache.log4j.Priority;
7
8 public class TestLog4j
9 {
10 protected TestLog4j ()
11 {
12 String path = System.getProperty ("user.dir",".");
13 System.out.println("!!!!"+path);
14 path += "\\..\\source\\TestLog4j\\log4j.properties";
15 System.out.println ("???"+path);
16 PropertyConfigurator.configure (path);
17 Logger log = Logger.getLogger (getClass().getName ());
18 log.info ("test in TestLog4j.java ");
19 // return logger;
20 }
21 }
22
log4j的使用非常廣泛。在這個程序中程序讀取配置文件,配置文件內(nèi)容如下:
1 #log4j.rootLogger = DEBUG, A1
2 log4j.rootLogger = INFO, A1
3 #log4j.appender.A1 = org.apache.log4j.ConsoleAppender
4 log4j.appender.A1 = org.apache.log4j.FileAppender
5 #可以滾動
6 log4j.appender.A1 = org.apache.log4j.RollingFileAppender
7 log4j.appender.A1.File = c:\\example.log
8 #到500k則將新建gisWS1.log 依此類推
9 log4j.appender.A1.MaxFileSize=500KB
10 #最多允許建立10個這樣的日志文件,當gisWS10.log滿500k 則重新覆蓋example1.log
11 log4j.appender.A1.MaxBackupIndex=10
12 log4j.appender.A1.layout = org.apache.log4j.PatternLayout
13 #log4j.appender.A1.layout.ConversionPattern = %-4r [%t] %-5p %c %x - %m%n
14 log4j.appender.A1.layout.ConversionPattern = [%d] [%t] %m%n
2 log4j.rootLogger = INFO, A1
3 #log4j.appender.A1 = org.apache.log4j.ConsoleAppender
4 log4j.appender.A1 = org.apache.log4j.FileAppender
5 #可以滾動
6 log4j.appender.A1 = org.apache.log4j.RollingFileAppender
7 log4j.appender.A1.File = c:\\example.log
8 #到500k則將新建gisWS1.log 依此類推
9 log4j.appender.A1.MaxFileSize=500KB
10 #最多允許建立10個這樣的日志文件,當gisWS10.log滿500k 則重新覆蓋example1.log
11 log4j.appender.A1.MaxBackupIndex=10
12 log4j.appender.A1.layout = org.apache.log4j.PatternLayout
13 #log4j.appender.A1.layout.ConversionPattern = %-4r [%t] %-5p %c %x - %m%n
14 log4j.appender.A1.layout.ConversionPattern = [%d] [%t] %m%n
配置文件的含義如注釋所言。
log4j使用了單態(tài)設(shè)計模式,所以在同一個項目,的另外一個程序中也要打印日志。直接可以用:
1 Logger logger = Logger.getLogger (Main.class.getName ());
2 logger.debug ("Start of the main() in TestLog4j");
3 logger.info ("Just testing a log message with priority set to INFO");
4 logger.warn ("Just testing a log message with priority set to WARN");
5 logger.error ("Just testing a log message with priority set to ERROR");
6 logger.fatal ("Just testing a log message with priority set to FATAL");
7 logger.log (Priority.WARN, "Testing a log message use a alternate form");
8 logger.debug (TestLog4j.class.getName ());
這樣日記配置全局起作用,日志也寫到一個地方的。2 logger.debug ("Start of the main() in TestLog4j");
3 logger.info ("Just testing a log message with priority set to INFO");
4 logger.warn ("Just testing a log message with priority set to WARN");
5 logger.error ("Just testing a log message with priority set to ERROR");
6 logger.fatal ("Just testing a log message with priority set to FATAL");
7 logger.log (Priority.WARN, "Testing a log message use a alternate form");
8 logger.debug (TestLog4j.class.getName ());
雖然隨JDK版本的升高,已經(jīng)帶有非常好用的日志記錄API類,但是log4j的使用已經(jīng)深入人心。掌握log4j的使用是非常有必要的。