1. 程式人生 > >log4j.jar log4j.properties 配置與使用

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的兩種配置xmlproperties

<?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 jarlog4j 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平臺上最好的