1、在應用程序中使用log4j2、把log4j-*.*jar放入CLASSPATH變量中編輯如下簡單java文件:
新建一個配置文件log4j.properties:
log4j.rootLogger=WARN, stdout, Rlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayout# Pattern to output the caller's file name and line number.#log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n# Print the date in ISO 8601 formatlog4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%nlog4j.appender.R=org.apache.log4j.RollingFileAppenderlog4j.appender.R.File=example.loglog4j.appender.R.MaxFileSize=100KB# Keep one backup filelog4j.appender.R.MaxBackupIndex=1log4j.appender.R.layout=org.apache.log4j.PatternLayoutlog4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n# Print only messages of level WARN or above in the package com.foo.log4j.logger.com.foo=WARN
編譯并運行TestLog4j會在目錄下生成一個example.log的文件,屏幕也會輸出信息,這證明已經你已經成功了第一步。下面解釋下這些配置文件log4j.rootLogger = [ level ], appendName1, appendName2, …appendNameN。同一個記錄器可有多個輸出端。PS:level的級別(此級別可以自定義,系統默認提供了以下級別)debug//調試信息info//一般信息warn//警告信息error//錯誤信息fatal//致命錯誤信息上面列出的就是所謂log4j的輸出級別,log4j建議只使用4個級別,它們從上到下分別為ERROR、WARN、INFO、DEBUG,假設你定義的級別是info,那么error和warn的日志可以顯示而比他低的debug信息就不顯示了。 log4j.appender.appenderName = fully.qualified.name.of.appender.class。log4j提供了以下幾種常用的輸出目的地:org.apache.log4j.ConsoleAppender,將日志信息輸出到控制臺org.apache.log4j.FileAppender,將日志信息輸出到一個文件org.apache.log4j.DailyRollingFileAppender,將日志信息輸出到一個,并且每天輸出到一個新的日志文件org.apache.log4j.RollingFileAppender,將日志信息輸出到一個文件,通過指定文件的的尺寸,當文件大小到達指定尺寸的時候會自動把文件改名,如名為example.log的文件會改名為 example.log.1,同時產生一個新的example.log文件。如果新的文件再次達到指定尺寸,又會自動把文件改名為 example.log.2,同時產生一個example.log文件。依此類推,直到example.log. MaxBackupIndex, MaxBackupIndex的值可在配置文件中定義。org.apache.log4j.WriterAppender,將日志信息以流格式發送到任意指定的地方。org.apache.log4j.jdbc.JDBCAppender,通過JDBC把日志信息輸出到數據庫中。Log4j提供了一下幾種布局:org.apache.log4j.HTMLLayout,以HTML表格形式布局org.apache.log4j.PatternLayout,可以靈活地指定布局模式org.apache.log4j.SimpleLayout,包含日志信息的級別和信息字符串定義一個PatternLayout布局的語句為:log4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1} - %m%nPS:ConversionPattern參數的格式含義格式名 含義%c 輸出日志信息所屬的類的全名%d 輸出日志時間點的日期或時間,默認格式為ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },輸出類似:2002-10-18- 22:10:28%f 輸出日志信息所屬的類的類名%l 輸出日志事件的發生位置,即輸出日志信息的語句處于它所在的類的第幾行%m 輸出代碼中指定的信息,如log(message)中的message%n 輸出一個回車換行符,Windows平臺為“\r\n”,Unix平臺為“\n”%p 輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL。如果是調用debug()輸出的,則為DEBUG,依此類推%r 輸出自應用啟動到輸出該日志信息所耗費的毫秒數%t 輸出產生該日志事件的線程名另外很好的學習筆記:http://www.sentom.net/list.asp?id=59http://www.sentom.net/list.asp?id=60http://www.sentom.net/list.asp?id=61
Powered by: BlogJava Copyright © qiyadeng