生活随笔
收集整理的這篇文章主要介紹了
【配置文件】log4j是什么log4j
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
log4j,簡單的說就是用于在應用程序中打印日志的工具,目前除了支持java外,還有C,C++,C#,Perl,Ruby等版本。這里只是簡單的討論下java中log4j。
log4j主要有三個組件,分別是Loggers,Appenders和Layouts。三個組件都帶了s,顯示是復數。Logger相當于記錄器,它控制著打印什么樣的信息,這些信息被分成了6個控制級別,分別是Trace,Debug,Info,Warn,Error和Fatal。通常情況下每個Logger都有與之對應的名稱,用靜態方法getLogger()來獲得當前Logger,一種習慣的做法是Logger.getLogger(Object.class)。Logger之所以成為帶Loggers,其之一是我們可以通過靜態方法獲取任意多個Logger;之二是Logger存在繼承關系,一種依賴與它們名稱的繼承關系,比如Logger("com.foo")就是Logger("com.foo.a")的父親,這中繼承關系使得沒有設定控制級別的子Logger擁有父Logger的控制級別。
Appender描述log輸出的目的地,log的Appedner可以是console,file,GUI components,JMS等等,也可以定制自己Appender通過繼承AppenderSkeleton類來實現。一個Logger可以有多個Appender,由于Logger的繼承關系,同樣使得子Logger擁有父Logger的Appender,同時還可以擁有自己的Appender。
Layout描述了log輸出的格式,主要用到的類是PatternLayout ,這個類里面定義關于轉換輸出格式用到的一些描述符。
關于怎么使用log4j
log4j為了簡化開發提供了配置模式,配置文件可以是XML格式或者properties格式(key=value)。一個簡單propterty格式配置文件(log4j.properties):
view plaincopy to clipboardprint?
#?Set?root?logger?level?to?DEBUG?and?its?only?appender?to?stdout?and?R.?log4j.rootLogger =DEBUG ,?stdout,R?? log4j.appender.stdout =org .apache.log4j.ConsoleAppender??log4j.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??log4j.appender.R =org .apache.log4j.RollingFileAppender??log4j.appender.R.File =example .loglog4j.appender.R.MaxFileSize =100KB #?Keep?one?backup?filelog4j.appender.R.MaxBackupIndex =1 ??log4j.appender.R.layout =org .apache.log4j.PatternLayout??log4j.appender.R.layout.ConversionPattern =%p?%t?%c?-?%m%n?? # Set root logger level to DEBUG and its only appender to stdout and R. log4j.rootLogger=DEBUG, stdout,R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.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
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.loglog4j.appender.R.MaxFileSize=100KB# Keep one backup filelog4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
一個簡單的XML格式配置文件(log4j.xml):
view plaincopy to clipboardprint?
< log4j:configuration ?xmlns:log4j ="http://jakarta.apache.org/log4j/" ?debug ="false" > ??< appender ?name ="Console" ?class ="org.apache.log4j.ConsoleAppender" > ?????< layout ?class ="org.apache.log4j.PatternLayout" > ?? ????< param ?name ="ConversionPattern" ?value ="%m%n" ?/> ?? </ layout > ??</ appender > ??< appender ?name ="rollingFileAppender" ?class ="org.apache.log4j.RollingFileAppender" > ????????????????< param ?name ="File" ?value ="TEST.log" ?/> ???????? ????????< param ?name ="Append" ?value ="true" ?/> ?????? ????????< param ?name ="MaxBackupIndex" ?value ="10" ?/> ???? ????????< param ?name ="MaxFileSize" ?value ="512000KB" /> ?? ????????< layout ?class ="org.apache.log4j.PatternLayout" > ?????? ????????????< param ?name ="ConversionPattern" ?value ="%p?(%c:%L)-?%m%n" ?/> ?????? ????????</ layout > ?????? ????</ appender > ???? < logger ?name ="com.test" > ?????< level ?value ?="DEBUG" /> ?? ???< appender-ref ?ref ="fileAppender" /> ?? </ logger > ??</ log4j:configuration > ?? <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> <appender name="Console" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%m%n" /> </layout> </appender> <appender name="rollingFileAppender" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="TEST.log" /> <param name="Append" value="true" /> <param name="MaxBackupIndex" value="10" /> <param name="MaxFileSize" value="512000KB"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%p (%c:%L)- %m%n" /> </layout> </appender> <logger name="com.test"> <level value ="DEBUG"/> <appender-ref ref="fileAppender"/> </logger> </log4j:configuration>
在code里,使用PropertyConfigurator.configure(configFileUrl&str) 來加載相應的配置文件。另外,log4j還提供了一個最基本配置BasicConfigurator.configure(),這個簡單的配置使用console appender,layout格式為 "%-4r [%t] %-5p %c %x - %m%n"。也可以使用java property來設置log4j.properties這個配置文件:java.property.log4j.configuration=file:/d:/log4j.properties。
轉載于:https://www.cnblogs.com/yqskj/articles/2226053.html
《新程序員》:云原生和全面數字化實踐 50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔 為你收集整理的【配置文件】log4j是什么log4j 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。