log4j配置文件配置及解读
說明:以下開發(fā)工具使用的是idea
一:打開idea,創(chuàng)建一個(gè)Maven管理的web項(xiàng)目
1. File->New->Module
2.Maven->勾選Create from archetype->選中maven-archetype-webapp
3.填入GroupId 和ArtifactId (這兒的內(nèi)容隨意),然后一路點(diǎn)默認(rèn)的Next
4.創(chuàng)建好的項(xiàng)目結(jié)構(gòu)如下圖所示
二:導(dǎo)入相關(guān)的jar,為了簡(jiǎn)潔我們只引用了兩個(gè)jar
<!--單元測(cè)試相關(guān)jar--> <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version> </dependency> <!--log4j相關(guān)jar--> <dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.6.1</version> </dependency>?三:添加log4j的配置文件
在src->main下新建resources文件夾,并在resources上右鍵,找到Mark?Directory as 選中Resources Root,然后新建log4j.properties配置文件,"log4j.properties"這個(gè)名字不要改動(dòng),否則會(huì)報(bào)錯(cuò),無需在web.xml里做任何配置
四:配置文件解讀
log4j.rootLogger=DEBUG,console,file #----------------輸出為控制臺(tái)-------------------# log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.Target=System.out log4j.appender.console.Threshold=DEBUG log4j.appender.console.ImmediateFlush=true log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH:mm:ss}][%c]%m%n #----------------輸出為文件-------------------# log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.File=log/log.txt log4j.appender.file.MaxFileSize=10mb log4j.appender.file.Threshold=ERROR log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n?1.配置文件中?log4j.rootLogger=debug,console,file,AAA,BBB,CCC,...
?其中第一個(gè)單詞為日志的輸出級(jí)別(輸出級(jí)別共有OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL),
后面的console,file,AAA,BBB,CCC,...為輸出端,輸出端可以自定義,以","做分割
2.常用的輸出端有控制臺(tái)(ConsoleAppender)、文件(FileAppender、DailyRollingFileAppender、RollingFileAppender)、數(shù)據(jù)庫(JDBCAppender?)
3.現(xiàn)在以輸出到控制臺(tái)、文件、數(shù)據(jù)庫為例進(jìn)行說明
- 輸出到控制臺(tái)console
log4j.appender.console.Target 的選項(xiàng)有System.error、System.out,常用后者;
log4j.appender.console.Threshold 輸入級(jí)別有OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL,需要說明的是這兒的輸出級(jí)別盡量要大于等于log4j.rootLogger 后面填寫的級(jí)別,否則不會(huì)有相應(yīng)的輸出;
log4j.appender.console.ImmediateFlush 默認(rèn)為true,可以不加這一行;
log4j.appender.console.layout 可渲染的輸出類型
log4j.appender.console.layout.ConversionPattern 輸出樣式?[%p][%d{yyyy-MM-dd HH:mm:ss}][%c]%m%n
? ? %m 輸出代碼中指定的消息?
%p 輸出優(yōu)先級(jí),即DEBUG,INFO,WARN,ERROR,FATAL?
%r 輸出自應(yīng)用啟動(dòng)到輸出該log信息耗費(fèi)的毫秒數(shù)?
%c 輸出所屬的類目,通常就是所在類的全名??
%t 輸出產(chǎn)生該日志事件的線程名?
%n 輸出一個(gè)回車換行符,Windows平臺(tái)為"rn”,Unix平臺(tái)為"n”?
%d 輸出日志時(shí)間點(diǎn)的日期或時(shí)間,默認(rèn)格式為ISO8601,也可以在其后指定格式,比如:%d{yyyy MM dd HH:mm:ss,SSS},輸出類似:2002年10月18日 22:10:28,921 %l 輸出日志事件的發(fā)生位置,包括類目名、發(fā)生的線程,以及在代碼中的行數(shù)。?
? ? %x: 輸出和當(dāng)前線程相關(guān)聯(lián)的NDC(嵌套診斷環(huán)境),尤其用到像java servlets這樣的多客戶多線程的應(yīng)用中。?
? ? %%: 輸出一個(gè)”%”字符?
? ? %F: 輸出日志消息產(chǎn)生時(shí)所在的文件名稱?
? ? %M: 輸出執(zhí)行方法?
? ? %L: 輸出代碼中的行號(hào)?
- 輸出到文件簡(jiǎn)潔配置
其中l(wèi)og4j.appender.file 常用的有
? ?org.apache.log4j.FileAppender(文件)
? ?org.apache.log4j.DailyRollingFileAppender(每天都產(chǎn)生一個(gè)日志文件)
? ?org.apache.log4j.RollingFileAppender(文件大小達(dá)到指定尺寸時(shí)產(chǎn)生一個(gè)新的日志文件,文件名稱上會(huì)自動(dòng)添加數(shù)字序號(hào)。)
log4j.appender.file.File 指定的是文件的輸出路徑,上面的寫法是相對(duì)項(xiàng)目的路徑,也可以配置成絕對(duì)路徑 例如D:/log。txt,推薦使用相對(duì)路徑;
- 輸出到數(shù)據(jù)庫的配置(以MySQL為例)?
log4j.appender.jdbc = org.apache.log4j.jdbc.JDBCAppender 是log4j提供的數(shù)據(jù)庫連接,參數(shù)需要自己配置
總結(jié)
以上是生活随笔為你收集整理的log4j配置文件配置及解读的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 乐高ev3python教程_入门篇丨使用
- 下一篇: 关于人工智能不会使大脑变懒惰的议论文_模