日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【配置文件】log4j是什么log4j

發(fā)布時(shí)間:2025/7/14 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【配置文件】log4j是什么log4j 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

log4j,簡單的說就是用于在應(yīng)用程序中打印日志的工具,目前除了支持java外,還有C,C++,C#,Perl,Ruby等版本。這里只是簡單的討論下java中l(wèi)og4j。

log4j主要有三個(gè)組件,分別是Loggers,Appenders和Layouts。三個(gè)組件都帶了s,顯示是復(fù)數(shù)。Logger相當(dāng)于記錄器,它控制著打印什么樣的信息,這些信息被分成了6個(gè)控制級別,分別是Trace,Debug,Info,Warn,Error和Fatal。通常情況下每個(gè)Logger都有與之對應(yīng)的名稱,用靜態(tài)方法getLogger()來獲得當(dāng)前Logger,一種習(xí)慣的做法是Logger.getLogger(Object.class)。Logger之所以成為帶Loggers,其之一是我們可以通過靜態(tài)方法獲取任意多個(gè)Logger;之二是Logger存在繼承關(guān)系,一種依賴與它們名稱的繼承關(guān)系,比如Logger("com.foo")就是Logger("com.foo.a")的父親,這中繼承關(guān)系使得沒有設(shè)定控制級別的子Logger擁有父Logger的控制級別。

Appender描述log輸出的目的地,log的Appedner可以是console,file,GUI components,JMS等等,也可以定制自己Appender通過繼承AppenderSkeleton類來實(shí)現(xiàn)。一個(gè)Logger可以有多個(gè)Appender,由于Logger的繼承關(guān)系,同樣使得子Logger擁有父Logger的Appender,同時(shí)還可以擁有自己的Appender。

Layout描述了log輸出的格式,主要用到的類是PatternLayout,這個(gè)類里面定義關(guān)于轉(zhuǎn)換輸出格式用到的一些描述符。

關(guān)于怎么使用log4j

log4j為了簡化開發(fā)提供了配置模式,配置文件可以是XML格式或者properties格式(key=value)。一個(gè)簡單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 一個(gè)簡單的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) 來加載相應(yīng)的配置文件。另外,log4j還提供了一個(gè)最基本配置BasicConfigurator.configure(),這個(gè)簡單的配置使用console appender,layout格式為 "%-4r [%t] %-5p %c %x - %m%n"。也可以使用java property來設(shè)置log4j.properties這個(gè)配置文件:java.property.log4j.configuration=file:/d:/log4j.properties。

    轉(zhuǎn)載于:https://www.cnblogs.com/yqskj/articles/2226053.html

    《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

    總結(jié)

    以上是生活随笔為你收集整理的【配置文件】log4j是什么log4j的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。