如何通過配置log4j.xml來列印指定類或指定級別的日誌資訊
把指定類的日誌資訊輸出到指定appender裡:
============================================================
<!--appender中,Theshold和Filter都是可選。不過,建議這種目的下最好不要寫,這樣,什麼資訊會輸出到該appender中,就只由指定logger的appender-ref的值來決定。否則會受到Theshold和Filter值的影響)。-->
<appender name="appender-3" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file" value="${loggingRoot}/file.log"/>
<param name="append" value="true"/>
<param name="encoding" value="GBK"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%p [%d{HH:mm:ss}] %c{1}.%M(%L) - %m%n"/>
</layout>
</appender>
<logger name="com.a.b.c.d.e" additivity="false">
<!--指定類的日誌級別,會影響指定類日誌發出資訊的成功與否-->
<level value = "debug" />
<appender-ref ref="appender-3" />
</logger>
同樣,在root元素裡不要指定該appender,如下:
<root>
<level value="warn"/>
<appender-ref ref="appender-1"/>
<appender-ref ref="appender-2"/>
</root>
這樣的話,就杜絕了被其他logger繼承的可能性。
此例中,如果在root裡指定了該appender,則級別不低於warn的日誌資訊都會輸出到appender-3中。
把各個級別的日誌資訊輸出到各個的appender裡,可使用過濾器,下面以info級別為例:
============================================================
<appender name="appender-info" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file" value="${loggingRoot}/info.log"/>
<param name="append" value="true"/>
<param name="encoding" value="GBK"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%p [%d{HH:mm:ss}] %c{1}.%M(%L) - %m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="INFO" />
<param name="LevelMax" value="INFO" />
</filter>
</appender>
appender-info只接受資訊級別為info的日誌資訊。
再說說關於root的一些情況:
============================================================
root元素定義的一些資訊只供作預設情況和繼承用。
只要後面的logger或appender,稍作顯式宣告,這些資訊都會被覆蓋。
以下面為例:
<root>
<level value="warn"/>
<appender-ref ref="appender-1"/>
<appender-ref ref="appender-2"/>
</root>
預設情況是:
1. 輸出器appender-1和appender-2只接受不低於warn級別的日誌資訊,不過一旦指定了Theshold或Filter,就以指定的為準。
2. 日誌記錄器logger的輸出器appender,預設會輸出到appender-1和appender-2中,若指定了<appender-ref value="appender-3" />,則日誌資訊會輸出到這三個,要停止這種繼承關係,可新增additivity=false。
log4j簡明手冊中的要點。
.1 Named Hierarchy
如果一個logger 的名字後面跟著一個點號(dot),它就是點號(dot)後面的那個logger的前輩( ancestor),是這個晚輩(descendant) 的字首。如果在它自己和這個晚輩之間沒有其它的前輩,它和這個晚輩之間就是父子關係。
.2 Level Inheritance
對於一個給定的logger C,它繼承的級別等於logger階層裡,從C開始往root logger上去的第一個non-null級別。
.3 Basic Selection Rule
在一個級別為q(被指定的或繼承的)的logger裡,一個級別為p的日誌請求,只有在p >= q 時才能夠被執行。
.4 Appender Additivity
Logger C的log輸出資訊將被輸出到C的所有appenders和它的前輩的 appenders。這就是"appender additivity"的意思。
但是,如果logger C的前輩,比如說P,P的additivity flag被設定為 false,那麼,C的輸出資訊將被輸出到C的所有appenders中去,以及它的前輩的——截 止在P那裡,包括P在內的,appenders中去,但是不會輸出到P的前輩的 appenders中去。
預設情況下,Loggers的additivity flag設定為true。
log4j簡明手冊:http://log4j.jaxmao.org/log4j/docs/manual.html
初次實施log4j,做了些小總結,期待交流哈。
相關推薦
如何通過配置log4j.xml來列印指定類或指定級別的日誌資訊
把指定類的日誌資訊輸出到指定appender裡: ============================================================ <!--appender中,Theshold和Filter都是可選。不過,建議這種目的下最好不要寫,這樣,什麼資訊會輸出到該app
springboot添加log4j日誌配置log4j.xml生成日誌文件
ota urn version xmlns private 1.0 owa ram .json 第一步:添加pom文件依賴 <!-- log4j --> <dependency> <
背水一戰 Windows 10 (122) - 其它: 通過 Windows.System.Profile 命名空間下的類獲取信息, 查找指定類或接口的所在程序集的所有子類和子接口
enter 轉換 local frame long windows 添加 roo schema [源碼下載] 背水一戰 Windows 10 (122) - 其它: 通過 Windows.System.Profile 命名空間下的類獲取信息, 查找指定類或接口的所在程序集
轉】Eclipse編輯Spring配置檔案xml時自動提示類class包名
轉自 http://bigdragon.iteye.com/blog/2396081 第一步,先檢視下自己的Eclipse是什麼版本,步驟如下: 1.1 點選Eclipse選單‘Help -> About Eclipse’,
Lunix下tomcat通過配置server.xml配置檔案實現執行非webapps目錄下的專案
1、首先普及一個觀點:tomcat對於webapps下的專案會自動部署,不需要配置server.xml,但對於非webapps目錄下的專案則需要手動配置server.xml檔案,例如在搭建nginx伺服器均衡負載時,往往不會把專案放在webapps目錄下。 2、serv
SpringBoot通過配置檔案傳輸值到實體類
1.建立一個配置檔案(appication.properties)項配置檔案加入以下: upload.target=D:/data/repository/upload/ upload.target.folder.1=yyyy upload.target.fold
通過conf/server.xml中的context配置的web專案啟動的時候沒有釋出情況日誌資訊
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:21.11' did not find a matching pr
不需要配置log4j , 除錯列印ibatis執行的sql語句和引數
背景:如果不想通過配置log4j的方式來列印ibatis執行的sql語句和引數param,可以使用如下方法在控制檯列印sql語句和引數 public static void main(String[] args) { try { //宣告配置檔
在專案的classPath 下配置log4j.xml ,為什麼沒有讀取log4j的配置檔案它會自己找到
因為在我們引的jar包 log4j-1.2.16.jar裡面,在啟動時又一個類會自動去找預設的配置檔案, 這些是在LogManage.java裡面的。預設會去classPath下查詢log4j的配
Eclipse編輯Spring配置檔案xml時自動提示類class包名
以Spring2.0為例: 下載地址: Csdn: http://download.csdn.net/download/hh775313602/9812757 沒積分的可以去百度網盤下載,我已共享: http://pan.baidu.com/s/1nv9bb1f
Android-通過網路獲取xml檔案使用pull解析得到伺服器中的資訊(新聞客戶端)
通過網路獲取xml檔案,使用pull解析該檔案得到伺服器中的資訊; demo中使用了一個開源的圖片載入包,故上傳原始碼方便檢視; 效果圖: 步驟: 1.連線伺服器獲取xml檔案; 2.使用pull解析xml檔案存入實體物件中; 3.解析後將實體物件存入List集合中;
log4輸出指定類的log級別
轉自:http://blog.csdn.net/finelife/archive/2007/05/17/1613282.aspx log4j:單獨指定某個Logger的輸出級別- - 一般對於生產系統,日誌級別調整為INFO以避免過多的輸出日誌。 但某些時候,需要跟蹤具體
log4j自定義級別並將新級別日誌資訊輸出到指定帶日期格式的log檔案
log4j.xml的配置如下: <appender name="LOG.EMAIL" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="${catalina.home}/logs/EMAIL_L
cmd執行Java命令時編譯通過,但是找不到主類或無法載入主類
剛剛開始學習Java時,發現一個重大問題,CMD執行javac命令能編譯,但是隻要執行java命令就顯示無法載入主類,但是eclipse正常執行,困擾了我很久,後來發現問題所在,是一個很奇葩的問題,給大家分享一下: 就是在用java命令時不要加.class字尾名!!!
tomcat中多個專案(web專案)共用log4j.jar的情況下,如何讓其各自列印各自的日誌檔案。及輸出同級別日誌資訊
問題描述: 1.專案A中有一個log4j.properties(配置為把日誌輸出到以專案名稱命名的資料夾中) 2.為了減輕tomcat負擔,把專案A的WEB-INF/lib下的所有jar檔案拷貝到tomcat下的lib中並修改catalina.properties對其載入
Eclipse通過HibernateTools實現逆向生成Hibernate實體類或對映
做專案必然要先進行資料庫表設計,然後根據資料庫設計建立實體類(VO),這是理所當然的,但是到公司裡做專案後,讓我認識到,沒有說既進行完資料庫設計後還要再“自己”建立一變VO。意思是,在專案設計時,要麼根據需求分析建立實體類,由正向生成資料庫表;要麼就先進行資料庫表設計,再逆向
log4j通過配置文件配置即,即可完成系統報錯想向指定郵箱發送提醒消息,網上的很多方法都又問題
name 分享 tor round 郵箱 article eap configure sys 我參考了下面的鏈接去實現,但是遇到了一些問題 參考鏈接: 1)http://blog.csdn.net/azheng270/article/details/2173430/ 這個鏈
java web客戶端整合cas,web.xml通過編碼的方式來載入配置
前言: 專案整合cas單點登入,需要在web.xml里加上cas-client的過濾器配置,但是配置地址太繁瑣,而且有重複配置,能不能讓web.xml去讀properties檔案,只做一次配置。在porperties裡配置cas單點開關引數,開就載入cas配置,整合cas,關就不整合。
Log4j詳細配置(包括指定類名,不打console等設定)
例子如下: log4j.rootLogger=INFO, Console ....... #log4j for QUEUE log4j.logger.Q=INFO,queue log4j.additivity.Q=false log4j.appender.queue
log4j指定包或類打到單獨的日誌檔案的配置
根據日誌定位問題的時候,如果所有的日誌都打到一個日誌檔案裡,查問題就很不直觀了。 一、指定某個路徑的包或類打到單獨的日誌檔案 log4j.xml 配置如下: <appender