Log4j日誌管理系統簡單使用說明 (轉)
Log4j日誌管理簡單使用說明
Log4j有三個主要的:Loggers,Appenders和Layouts,這裡可簡單理解為日誌類別,日誌要輸出的地方和日誌以何種形式輸出。綜合使用這三個元件可以輕鬆的記錄資訊的型別和級別,並可以在執行時控制日誌輸出的樣式和位置。下面對三個元件分別進行說明:
1、 Loggers
Loggers元件在此係統中被分為五個級別:DE、INFO、WARN、ERROR和AL。這五個級別是有順序的,DEBUG < INFO < WARN < ERROR < FATAL,明白這一點很重要,這裡Log4j有一個規則:假設Loggers級別為P,如果在Loggers中發生了一個級別Q比P高,則可以啟動,否則遮蔽掉。
舉例來說:
//建立Logger的一個例項,命名為“com.foo”
Logger logger = Logger.getLogger("com.foo");
//設定logger的級別。通常不在程式中設定logger的級別。一般在中設定。
logger.setLevel(Level.INFO);
Logger barlogger = Logger.getLogger("com.foo.Bar");
//下面這個請求可用,因為WARN >= INFO
logger.warn("Low fuel level.");
//下面這個請求不可用,因為DEBUG < INFO
logger.debug("Starting search for nearest gas station.");
//命名為“com.foo.bar”的例項barlogger會繼承例項“com.foo”的級別。因此,下面這個請求可用,因為INFO >= INFO
barlogger.info("Located nearest gas station.");
//下面這個請求不可用,因為DEBUG < INFO
barlogger.debug("Exiting gas station search");
這裡“是否可用”的意思是能否輸出Logger資訊。
在對Logger例項進行命名時,沒有限制,可以取任意自己感興趣的名字。一般情況下建議以類的所在位置來命名Logger例項,這是目前來講比較有效的Logger命名方式。這樣可以使得每個類建立自己的日誌資訊,便於管理。比如:
static Logger logger = Logger.getLogger(ClientWithLog4j.class.getName());
2、 Appenders
禁用與使用日誌請求只是Log4j其中的一個小小的地方,Log4j日誌系統允許把日誌輸出到不同的地方,如控制檯(Console)、檔案(Files)、根據天數或者檔案大小產生新的檔案、以流的形式傳送到其它地方等等。
其語法表示為:
org..log4j.ConsoleAppender(控制檯),
org.apache.log4j.FileAppender(檔案),
org.apache.log4j.DailyRollingFileAppender(每天產生一個日誌檔案),org.apache.log4j.RollingFileAppender(檔案大小到達指定尺寸的時候產生一個新的檔案),
org.apache.log4j.WriterAppender(將日誌資訊以流格式傳送到任意指定的地方)配置時使用方式為:
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
…
log4j.appender.appenderName.option = valueN
這樣就為日誌的輸出提供了相當大的便利。
3、 Layouts
有時希望根據自己的喜好格式化自己的日誌輸出。Log4j可以在Appenders的後面附加Layouts來完成這個功能。Layouts提供了四種日誌輸出樣式,如根據HTML樣式、自由指定樣式、包含日誌級別與資訊的樣式和包含日誌時間、執行緒、類別等資訊的樣式等等。
其語法表示為:
org.apache.log4j.HTMLLayout(以HTML表格形式佈局),
org.apache.log4j.PatternLayout(可以靈活地指定佈局),
org.apache.log4j.SimpleLayout(包含日誌資訊的級別和資訊字串),
org.apache.log4j.TTCCLayout(包含日誌產生的時間、執行緒、類別等等資訊)配置時使用方式為:
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1
…
log4j.appender.appenderName.layout.option = valueN
以上是從原理方面說明Log4j的使用方法,在具體Java使用Log4j可以參照以下示例:
1、 建立Logger例項:
語法表示:public static Logger getLogger( String name)
實際使用:static Logger logger = Logger.getLogger (ServerWithLog4j.class.getName ()) ;
2、 讀取配置檔案:
獲得了Logger的例項之後,接下來將配置Log4j使用環境:
語法表示:
BasicConfigurator.configure():自動地使用預設Log4j環境。
PropertyConfigurator.configure(String configFilename):讀取使用Java的特性檔案編寫的配置檔案。
Configurator.configure(String filename):讀取形式的配置檔案。
實際使用:PropertyConfigurator.configure("ServerWithLog4j.properties");
3、 插入日誌資訊
完成了以上連個步驟以後,下面就可以按日誌的不同級別插入到你要記錄日誌的任何地方了。
語法表示:
Logger.debug( message);
Logger.info(Object message);
Logger.warn(Object message);
Logger.error(Object message);
實際使用:logger.info("ServerSocket before accept: " + server);
在實際程式設計時,要使Log4j真正在系統中執行事先還要對配置檔案進行定義。定義步驟就是對Logger、Appender及Layout的分別使用,具體如下:
1、 配置根Logger,其語法為:
log4j.Logger = [ level ] , appenderName, appenderName, …
這裡level指Logger的優先順序,appenderName是日誌資訊的輸出地,可以同時指定多個輸出地。如:log4j.rootLogger= INFO,A1,A2
2、 配置日誌資訊輸出目的地,其語法為:
log4j.appender.appenderName = fully.qualified.name.of.appender.class
可以指定上面所述五個目的地中的一個。
3、 配置日誌資訊的格式,其語法為:
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
這裡上面三個步驟是對前面Log4j元件說明的一個簡化;下面給出一個具體配置例子,在程式中可以參照:
log4j.rootLogger=INFO,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=
%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n
這裡需要說明的就是日誌資訊格式中幾個符號所代表的含義:
-X號: X資訊輸出時左對齊;
%p: 日誌資訊級別
%d{}: 日誌資訊產生時間
%c: 日誌資訊所在地(類名)
%m: 產生的日誌具體資訊
%n: 輸出日誌資訊換行
根據上面的日誌格式,某一個程式的輸出結果如下:
0 INFO -06-13 13:23:46968 ClientWithLog4j Client socket: Socket[addr=localhost/127.0.0.1,port=8002,localport=2014]
16 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j Server says: 'Java server with log4j, Fri Jun 13 13:23:46 CST 2003'
16 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j GOOD
16 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j Server responds: 'Command 'HELLO' not understood.'
16 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j HELP
16 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j Server responds: 'Vocabulary: HELP QUIT'
16 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j QUIT
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-981165/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql日誌系統簡單使用MySql
- 崩潰日誌的欄位簡單說明
- Log4J日誌管理類使用詳解 (轉)
- mysql 系統審計日誌格式說明:MySql
- Linux作業系統的日誌說明Linux作業系統
- windows NT事件日誌說明 (轉)Windows事件
- jarsigner 簡單使用說明JAR
- oracle日誌檔案頭轉儲說明Oracle
- MySQL 日誌檔案 說明MySql
- 『學了就忘』Linux日誌管理 — 91、日誌服務rsyslogd說明Linux
- linux日誌檔案說明Linux
- LogMiner日誌分析工具說明
- 圖書管理系統需求說明書
- sqlmap簡單中文說明SQL
- Log4j 日誌體系結構
- FreeBSD 系統日誌(轉)
- 使用Log4j進行日誌操作
- sql server關於跟蹤日誌查詢使用說明SQLServer
- 簡單使用SLF4J日誌
- log4j日誌輸出級別(轉)
- js 快捷鍵大全,並有簡單使用說明JS
- JavaScript字串api簡單說明JavaScript字串API
- pureftpd安裝配置簡明說明 (轉)FTP
- 使用logrotate 管理日誌檔案(轉)logrotate
- FCS程式日誌的關鍵字說明
- Hibernate 使用log4j輸出日誌
- 使用Log4j進行日誌記錄
- Windows linux子系統 使用說明WindowsLinux
- Emacs簡易操作說明(轉)Mac
- Object TreeView簡要說明 (轉)ObjectView
- 【PG體系結構】PG體系結構簡單說明
- Log4j日誌體系結構解讀
- 使用Redis記錄系統日誌Redis
- 過等保流程簡單說明
- JavaScript陣列api簡單說明JavaScript陣列API
- spring aop expression簡單說明SpringExpress
- 日誌系統
- Oracle資料庫重做日誌及歸檔日誌的工作原理說明Oracle資料庫