log4j.jar log4j.properties 配置與使用
一、配置log4j.properties
如下:
#配置根日誌優先順序,及輸出位置 #語法:log4j.rootLogger = [debug],apppenderName1,appenderName2... log4j.rootLogger = debug,stdout,D #上面定義了兩個輸出位置名:stdout與D,現分別配置: #配置stdout為除錯視窗輸出: log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out #指定了一個模式表示式的佈局 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout #設定該模式表示式 log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method: %l%n%m%n #說明: #[%-5p]:%p設定輸出日誌優先順序,'-'表示左對齊,5表示日誌優先順序所佔字元個數的寬度,取5是為了保持 一致。如:[DEBUG] #%d{yyyy-MM-dd HH:mm:ss,SSS},指定了列印日誌時間與時間格式,SSS表示? #%l: 輸出日誌事件的發生位置,見第四部分。%n,輸出換行符。%m,輸出日誌事件發生的方法名。 #配置D為輸出日誌到檔案: log4j.appender.D=org.apache.log4j.FileAppender log4j.appender.D.File=D:\\Program_software\\Apache7_0_75\\webapps\\testLog.log log4j.appender.D.layout=org.apache.log4j.PatternLayout log4j.appender.D.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n ################################################################### #———————————配置詳細說明,共四部分——————————# #一、配置log4j.rootLogger #語法:log4j.rootLogger = [debug],apppenderName1,appenderName2... #如:log4j.rootLogger = debug,stdout #二、配置Appeder——輸出位置 #語法:log4j.appender.appenderName = fully.qualified.name.of.appender.class #完全合法的appenderName 有幾類選擇 #1、控制檯:org.apache.log4j.ConsoleAppender #對應選項: #Threshold=WARN:指定日誌訊息的輸出最低層次 #ImmediateFlush=true:預設日誌立即列印 #Target=System.err:預設情況下使用System.out 輸出控制檯 #2、檔案:org.apache.log4j.FileAppender #對應選項: #Threshold=WARN:指定日誌訊息輸出最低層次 #ImmediateFlush=true:預設日誌立即列印 #File=mylog.txt:指定輸出路徑,可以是任何路徑 #Append=false:預設值是true,為false則覆蓋 #3、週期產生日誌檔案:org.apache.log4j.DailyRollingFileAppender #對應選項: #Threshold=WARN:指定日誌訊息輸出最低層次 #ImmediateFlush=true:預設日誌立即列印 #File=a.log:指定訊息輸出到a.log檔案,預設是從web伺服器的根路徑開始 #Append=false:預設為true #DatePattern='.'yyyy-ww:每週滾動一次檔案,即每週產生一個新的檔案。 #也可指定週期: #'.'yyyy-MM:每月 #'.'yyyy-ww:每週 #'.'yyyy-MM-dd:每天 #'.'yyyy-MM-dd-a:每天兩次 #'.'yyyy-MM-dd-HH:每小時 #'.'yyyy-MM-dd-HH-mm:每分鐘 #4、指定檔案尺寸大小產生日誌檔案:org.apache.log4j.RollingFileAppender #對應選項: #Threshold=WARN:指定日誌訊息輸出最低層次 #ImmediateFlush=true:預設日誌立即列印 #File=a.log:指定日誌檔案 #Append=false:預設為true #MaxFileSize=100KB:單位可以是KB|MB|GB,日誌檔案達到最大時,將會自動滾動,即將原來的內容移到 mylog.log.1檔案 #MaxBackupIndex=2:指定可以產生滾動檔案的最大數 #5、將日誌以流格式傳送到任意指定的地方:org.apache.log4j.WriterAppender #例如: #log4j.appender.R=org.apache.log4j.DailyRollingFileAppender #log4j.appender.R.File=D:\\eclipsespace\\testSSH\\WebContent\\WEB-INF\\testlog.log #三、配置日誌資訊的格式佈局(layout) #layout負責格式化Appender 的輸出 #語法: #log4j.appender.appenderName.layout=fully.qualified.name.of.layout.class #有效的layout類名字有以下幾種: #1、org.apache.log4j.HTMLLayout(以HTML表格形式佈局) #該選項有以下幾種: #LocationInfo=true:預設值是false,輸出java檔名稱和行號 #Title=my app file: 預設值是 Log4J Log Messages. #2、org.apache.log4j.PatternLayout(可以靈活地指定佈局模式) #該選項有以下幾種: #ConversionPattern=%m%n :指定怎樣格式化指定的訊息 #其中%m%n等符號所代表的含義如下: (有問題,暫不管) #-X號: X資訊輸出時左對齊; #%p: 輸出日誌資訊優先順序,即DEBUG,INFO,WARN,ERROR,FATAL, #%d: 輸出日誌時間點的日期或時間,預設格式為ISO8601,也可以在其後指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},輸出類似:2002年10月18日 22:10:28,921 #%r: 輸出自應用啟動到輸出該log資訊耗費的毫秒數 #%c: 輸出日誌資訊所屬的類目,通常就是所在類的全名 #%t: 輸出產生該日誌事件的執行緒名 #%l: 輸出日誌事件的發生位置,相當於%C.%M(%F:%L)的組合,包括類目名、發生的執行緒,以及在程式碼中的行 數。舉例:Testlog4.main(TestLog4.java:10) #%x: 輸出和當前執行緒相關聯的NDC(巢狀診斷環境),尤其用到像java servlets這樣的多客戶多執行緒的應用中 。 #%%: 輸出一個"%"字元 #%F: 輸出日誌訊息產生時所在的檔名稱 #%L: 輸出程式碼中的行號 #%m: 輸出程式碼中指定的訊息,產生的日誌具體資訊 #%n: 輸出一個回車換行符,Windows平臺為"\r\n",Unix平臺為"\n"輸出日誌資訊換行 #可以在%與模式字元之間加上修飾符來控制其最小寬度、最大寬度、和文字的對齊方式。如: #%20c:指定輸出category的名稱,最小的寬度是20,如果category的名稱小於20的話,預設的情況下右對 齊。 #%-20c:指定輸出category的名稱,最小的寬度是20,如果category的名稱小於20的話,"-"號指定左對齊。 #%.30c:指定輸出category的名稱,最大的寬度是30,如果category的名稱大於30的話,就會將左邊多出的 字元截掉,但小於30的話也不會有空格。 #%20.30c:如果category的名稱小於20就補空格,並且右對齊,如果其名稱長於30字元,就從左邊交遠銷出 的字元截掉。 # 如:%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n [TEST] %p [%t] %C.%M(%L) | %m%n #3、org.apache.log4j.SimpleLayout(包含日誌資訊的級別和資訊字串) #4、org.apache.log4j.TTCCLayout(包含日誌產生的時間、執行緒、類別等等資訊) #四、其他 #指定包名下的日誌級別 #語法:log4j.logger.包名=日誌級別 #如: #log4j.logger.com.neusoft =DEBUG #指定com.neusoft包下的所有類的等級為DEBUG。 #log4j.logger.com.opensymphony.oscache=ERROR #log4j.logger.net.sf.navigator=ERROR #這兩句是把這兩個包下出現的錯誤的等級設為ERROR,如果專案中沒有配置EHCache,則不需要這兩句。 #log4j.logger.org.apache.commons=ERROR #log4j.logger.org.apache.struts=WARN #這兩句是struts的包。
說明:
1、前提是有commons-logging與 log4j 兩個jar 包,這是常用包,建議放在伺服器的lib 目錄下。
2、日誌路徑好像只能為絕對路徑,且注意格式!如:
D:\\Program_software\\Apache7_0_75\\webapps\\testLog.log
3、log4j.properties 放在類路徑下(即src目錄下雨包名同級)才能被伺服器自動載入,當然也可以在web.xml 中指定放在WEB-INF下,見第二部分。
二、web.xml 中配置log4j.properties 的位置
在web.xml 中指定幾個context-param,這些引數是該應用的全域性引數。
<context-param> <param-name>webAppRootKey</param-name> <param-value>/</param-value><!--把專案釋出路徑的根路徑對映為/--> </context-param> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>WEB-INF/log4j.properties</param-value> </context-param> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>60000</param-value> </context-param> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener>
說明:
1、webAppRootKey 引數將專案釋出根路徑對映為一個自己指定的路徑,如上面的設定會在啟動日誌中有體現:
資訊: Set web app root system property: '/' = [D:\Program_software\Apache7_0_75\webapps\JWebSpringMVC2_5\]
設定此引數的目的是想在properties 中使用並將日誌檔案也定位到專案釋出目錄的WEB-INF/目錄下,即通過相對方式,而非絕對,但未成功。
2、log4jConfigLocation 引數將引導tomcat 從WEB-INF/log4j.properties 中讀取Log的配置。3、需要配置監聽器bean:org.sringframework.web.util.Log4jConfigListener
三、java 程式碼中使用Log 物件
若在tomcat lib目錄中存放了兩個jar 包,則可直接在專案中使用,在專案中配置log4j.proterties 並使用即可,否則需單獨導包。
java 中使用Log 物件打日誌:
Log logger=LogFactory.getLog("runLogger");
Log interfaceLog=LogFactory.getLog("interfaceLogger");
logger.error("測試LogFactory獲得的runLogger");
interfaceLog.error("interfaceLogger");
暫時未了解getLog 的引數的含義。
日誌視窗:[ERROR] 2017-04-21 00:16:30,793 method:com.milan.actions.HelloWorldAction.handleRequest(HelloWorldAction.java:24)
測試LogFactory獲得的runLogger
[ERROR] 2017-04-21 00:16:30,793 method:com.milan.actions.HelloWorldAction.handleRequest(HelloWorldAction.java:25)
interfaceLogger
相關推薦
log4j.jar log4j.properties 配置與使用
一、配置log4j.properties 如下: #配置根日誌優先順序,及輸出位置 #語法:log4j.rootLogger = [debug],apppenderName1,appenderName2... log4j.rootLogger = debug,stdout,
log4j.properties配置詳解與實例
尺寸 bject debug deb .com 大數 配置日誌 應用程序 登錄 最近使用log4j寫log時候發現網上的寫的都是千篇一律,寫的好的嘛不全,寫的全一點的嘛沒有一點格式,看著累。這裏把網上收集到的整理了一下,並且全部都在機器上測試成功了。這麽好的文
log4j.properties配置詳解與例項-全部測試通過[轉]
最近使用log4j寫log時候發現網上的寫的都是千篇一律,寫的好的嘛不全,寫的全一點的嘛沒有一點格式,看著累。這裡把網上收集到的整理了一下,並且全部都在機器上測試成功了。這麼好的文件估計沒有了吧? ###############################################
spark log4j.properties配置詳解與例項
################################################################################ #①配置根Logger,其語法為: # #log4j.rootLogger = [level],appen
log4j的兩種配置xml與properties
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" ><log4j:configuration> <!-- 配置控制檯輸出的a
log4j.properties配置詳解與例項-全部測試通過
最近使用log4j寫log時候發現網上的寫的都是千篇一律,寫的好的嘛不全,寫的全一點的嘛沒有一點格式,看著累。這裡把網上收集到的整理了一下,並且全部都在機器上測試成功了。這麼好的文件估計沒有了吧? ######################################
log4j的使用與java中properties配置檔案載入
日誌是我們在寫程式碼中經常會用到的,程式出錯了我們也需要去檢視日誌來調錯,對於像我們這一些新人來說,怎麼去使用日誌就比較陌生,下面我將我學習的過程分享一下: 1.需要找到一個log4j包,我使用的是log4j-1.2.15.jar。放在工程lib資料夾下 2.新建一
log4j properties配置
log4jlog4j.rootLogger=DEBUG,console,dailyFilelog4j.additivity.org.apache=true# 控制臺(console)log4j.appender.console=org.apache.log4j.ConsoleAppenderlog4j.app
log4j.properties配置文件
resource ack parameter debug ges you rec std pri log4j.appender.file.encoding=UTF-8 ### direct log messages to stdout ###log4j.appende
因缺失log4j.properties 配置文件導致flume無法正常啟動。
html close ann set please ans 無法 sink root 因缺失log4j.properties 配置文件導致flume無法正常啟動
log4j.properties 配置 切換DEBUG 、 info
1、DEBUG 模式 log4j.rootCategory=DEBUG, stdout #DEBUG, stdout #log4j.appender.stdout=org.apache.log4j.ConsoleAppender #log4j.appender.stdout.layo
log4j.properties配置內容
### 設定### #建議開發環境中使用debug,上線之後使用info log4j.rootLogger = DEBUG,stdout,D,E ### 輸出資訊到控制擡 ### log4j.appender.stdout = org.apache.log4j.ConsoleAppender lo
commons-logging和Log4j 日誌管理/log4j.properties配置詳解
commons-logging和Log4j 日誌管理 (zz) 什麼要用日誌(Log)? 這個……就不必說了吧。 為什麼不用System.out.println()? 功能太弱;不易於控制。如果暫時不想輸出了怎麼辦?如果想輸出到檔案怎麼辦?如果想部分輸出怎麼辦?…… 為什麼
Mybatis框架中的log4j.properties配置
使用時建立log4j.properties檔案,然後複製貼上以下內容 log4j.rootLogger=DEBUG, Console #Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4
使用log4jdbc列印完整sql語句(log4j.properties配置)
首先要下載log4jdbc的jar包log4jdbc-1.2.jar以及依賴的相關Jar包log4j-1.2.17.jar、slf4j-api-1.6.0.jar、slf4j-log4j12-1.7.7.jar。 接下來把我們的資料庫連線驅動和url進行
log4j.properties配置詳解
一、Log4j配置 第一步:加入log4j-1.2.8.jar到lib下。 第二步:在CLASSPATH下建立log4j.properties。內容如下: Java程式碼 收藏程式碼 log4j.rootCategory=INFO, stdout ,
common-logging jar與log4j jar
Apache common logging是一種log的框架介面,它本身並不實現log記錄的功能,而是在執行時動態查詢目前存在的日誌庫,呼叫相關的日誌函式,從而隱藏具體的日誌實現 log4j是具體的日誌實現,真正負責"寫"日誌的這個功能 common logging本身不是log,你可以把它看做是一
log4j在tomcat下多個工程的log4j.properties配置
關於tomcat下多個工程配置一個log4j.properties,達到輸出各自的日誌的問題, 經過實際工作的總結和調查,在這裡做出一個總結和備忘。 提起log4j的配置,我們常用的配置辦法是為每個工程建立一個log4j.properties檔案,並在其中寫入自己的輸出日
【日誌】log4j的使用配置與引數解析
一、Log4j簡介 1.log4j由三個重要元件構成:日誌資訊的優先順序,日誌資訊的輸出目的地,日誌資訊的輸出格式。 2.優先順序(level)從高到低有:ERROR,WARN,INFO,DEBUG。 3.輸出目的地可以是:控制檯,檔案,GUI元件,甚至是
Log4j 2配置與IntelliJ IDEA控制檯顏色
原文地址:http://www.hankcs.com/program/java/log4j-2-console-color-configuration-with-intellij-idea.html 準備開一大專案的話,日誌系統必不可少。Log4j是Java平臺上最好的