国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

log4j 日志信息的引入(通用版)——解決項(xiàng)目運(yùn)行過程中的日志信息

2019-11-15 01:16:39
字體:
供稿:網(wǎng)友
log4j 日志信息的引入(通用版)——解決項(xiàng)目運(yùn)行過程中的日志信息

定義

  log4j是Apache的一個(gè)開放源代碼項(xiàng)目,通過使用Log4j,我們可以控制日志信息輸送的目的地是控制臺、文件、GUI組件,甚至是套接口服務(wù)器、NT的事件記錄器、UNIXSyslog守護(hù)進(jìn)程等;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級別,我們能夠更加細(xì)致地控制日志的生成過程。最令人感興趣的就是,這些可以通過一個(gè)配置文件來靈活地進(jìn)行配置,而不需要修改應(yīng)用的代碼。


一、log4j.PRoperties 的使用詳解

1.輸出級別的種類

ERROR、WARN、INFO、DEBUGERROR 為嚴(yán)重錯(cuò)誤 主要是程序的錯(cuò)誤WARN 為一般警告,比如session丟失INFO 為一般要顯示的信息,比如登錄登出DEBUG 為程序的調(diào)試信息

2.配置日志信息輸出目的地

log4j.appender.appenderName = fully.qualified.name.of.appender.class1.org.apache.log4j.ConsoleAppender(控制臺)2.org.apache.log4j.FileAppender(文件)3.org.apache.log4j.DailyRollingFileAppender(每天產(chǎn)生一個(gè)日志文件)4.org.apache.log4j.RollingFileAppender(文件大小到達(dá)指定尺寸的時(shí)候產(chǎn)生一個(gè)新的文件)5.org.apache.log4j.WriterAppender(將日志信息以流格式發(fā)送到任意指定的地方)

3.配置日志信息的格式

log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class1.org.apache.log4j.HTMLLayout(以HTML表格形式布局),2.org.apache.log4j.PatternLayout(可以靈活地指定布局模式),3.org.apache.log4j.SimpleLayout(包含日志信息的級別和信息字符串),4.org.apache.log4j.TTCCLayout(包含日志產(chǎn)生的時(shí)間、線程、類別等等信息)

4.控制臺選項(xiàng)

Threshold=DEBUG:指定日志消息的輸出最低層次。ImmediateFlush=true:默認(rèn)值是true,意謂著所有的消息都會(huì)被立即輸出。Target=System.err:默認(rèn)情況下是:System.out,指定輸出控制臺FileAppender 選項(xiàng)Threshold=DEBUF:指定日志消息的輸出最低層次。ImmediateFlush=true:默認(rèn)值是true,意謂著所有的消息都會(huì)被立即輸出。File=mylog.txt:指定消息輸出到mylog.txt文件。Append=false:默認(rèn)值是true,即將消息增加到指定文件中,false指將消息覆蓋指定的文件內(nèi)容。RollingFileAppender 選項(xiàng)Threshold=DEBUG:指定日志消息的輸出最低層次。ImmediateFlush=true:默認(rèn)值是true,意謂著所有的消息都會(huì)被立即輸出。File=mylog.txt:指定消息輸出到mylog.txt文件。Append=false:默認(rèn)值是true,即將消息增加到指定文件中,false指將消息覆蓋指定的文件內(nèi)容。MaxFileSize=100KB: 后綴可以是KB, MB 或者是 GB. 在日志文件到達(dá)該大小時(shí),將會(huì)自動(dòng)滾動(dòng),即將原來的內(nèi)容移到mylog.log.1文件。MaxBackupIndex=2:指定可以產(chǎn)生的滾動(dòng)文件的最大數(shù)。log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n

5.日志信息格式中幾個(gè)符號所代表的含義:

-X號: X信息輸出時(shí)左對齊;%p: 輸出日志信息優(yōu)先級,即DEBUG,INFO,WARN,ERROR,F(xiàn)ATAL,%d: 輸出日志時(shí)間點(diǎn)的日期或時(shí)間,默認(rèn)格式為ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},輸出類似:2002年10月18日 22:10:28,921%r: 輸出自應(yīng)用啟動(dòng)到輸出該log信息耗費(fèi)的毫秒數(shù)%c: 輸出日志信息所屬的類目,通常就是所在類的全名%t: 輸出產(chǎn)生該日志事件的線程名%l: 輸出日志事件的發(fā)生位置,相當(dāng)于%C.%M(%F:%L)的組合,包括類目名、發(fā)生的線程,以及在代碼中的行數(shù)。舉例:Testlog4.main (TestLog4.java:10)%x: 輸出和當(dāng)前線程相關(guān)聯(lián)的NDC(嵌套診斷環(huán)境),尤其用到像java servlets這樣的多客戶多線程的應(yīng)用中。%%: 輸出一個(gè)"%"字符%F: 輸出日志消息產(chǎn)生時(shí)所在的文件名稱%L: 輸出代碼中的行號%m: 輸出代碼中指定的消息,產(chǎn)生的日志具體信息%n: 輸出一個(gè)回車換行符,Windows平臺為"/r/n",Unix平臺為"/n"輸出日志信息換行

可以在%與模式字符之間加上修飾符來控制其最小寬度、最大寬度、和文本的對齊方式。

如:

1) %20c:指定輸出category的名稱,最小的寬度是20,如果category的名稱小于20的話,默認(rèn)的情況下右對齊。2)%-20c:指定輸出category的名稱,最小的寬度是20,如果category的名稱小于20的話,"-"號指定左對齊。3) %.30c:指定輸出category的名稱,最大的寬度是30,如果category的名稱大于30的話,就會(huì)將左邊多出的字符截掉,但小于30的話也不會(huì)有空格。

4) %20.30c:如果category的名稱小于20就補(bǔ)空格,并且右對齊,如果其名稱長于30字符,就從左邊較遠(yuǎn)輸出的字符截掉。

二、log4j.properties的配置

1、配置步驟

  1) 把log4j-*.*jar引入項(xiàng)目中,如果是java web項(xiàng)目,可以直接放在lib中  2) 在web.xml文件中配置

     <!-- log4j 配置 開始 -->       <context-param>             <param-name> log4jConfigLocation </param-name >             <param-value> /WEB-INF/classes/log4j.properties </param-value >       </context-param>       <context-param>             <param-name> log4jRefreshInterval </param-name >             <param-value> 600000 </param-value >     </context-param>

  3) 編寫log4j.properties文件

log4j.rootCategory=INFO,stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern= [NGBOSSmonitor] %p [%t] %C.%M(%L) | %m%nlog4j.appender.RollingFile.File=logs/monitor.loglog4j.appender.RollingFile.layout=org.apache.log4j.PatternLayoutlog4j.logger.com.test=debuglog4j.logger.com.ibatis=debuglog4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debuglog4j.logger.com.ibatis.common.jdbc.ScriptRunner=debuglog4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debuglog4j.logger.java.sql.Connection=debuglog4j.logger.java.sql.Statement=debuglog4j.logger.java.sql.PreparedStatement=debug,stdout

  4)、Logger調(diào)用

  在每一個(gè)要產(chǎn)生日志的類上面加上這句,MonitorMessageController為該類的名字。

private final Logger log= Logger.getLogger(MonitorMessageController.class);

 

 通過以上的配置,即可在運(yùn)行的過程中在控制臺中打印出日志。

    

    致謝:感謝您的耐心閱讀!


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 兰州市| 静海县| 汉川市| 临潭县| 溧阳市| 乳山市| 海淀区| 龙里县| 闽清县| 安顺市| 彭阳县| 建昌县| 泰州市| 泸溪县| 孟连| 桐城市| 绥芬河市| 凤阳县| 乐东| 焦作市| 苏尼特左旗| 冷水江市| 西盟| 政和县| 南木林县| 当涂县| 灵璧县| 绵竹市| 报价| 长宁区| 吉林省| 工布江达县| 澳门| 九寨沟县| 依兰县| 朔州市| 邵阳县| 合阳县| 麦盖提县| 额尔古纳市| 上思县|