log4j怎麼配置
A. log4j怎麼用
Log4j是Apache的一個開放源代碼項目,通過使用Log4j,我們可以控制日誌信息輸送的目的地是控制台、文件、GUI組件、甚至是套介面伺服器、NT的事件記錄器、UNIX Syslog守護進程等;我們也可以控制每一條日誌的輸出格式;通過定義每一條日誌信息的級別,我們能夠更加細致地控制日誌的生成過程。最令人感興趣的就是,這些可以通過一個配置文件來靈活地進行配置,而不需要修改應用的代碼。
一、Log4j配置
第一步:加入log4j-1.2.8.jar到lib下。
第二步:在CLASSPATH下建立log4j.properties。內容如下:
log4j.rootLogger=DEBUG,stdout,logout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=-%d{yyyy-MM-dd HH:mm:ss,SSS}%c - %m%n
log4j.appender.logout=org.apache.log4j.RollingFileAppender
log4j.appender.logout.File=log.txt
log4j.appender.logout.MaxFileSize=500KB
log4j.appender.logout.MaxBackupIndex=1
log4j.appender.logout.layout=org.apache.log4j.PatternLayout
log4j.appender.logout.layout.ConversionPattern=-%d{yyyy-MM-dd HH:mm:ss,SSS} - %c{1} - %m%n
在你的類中引入:
import org.apache.log4j.*;
新建一個log4j實例:
private static final Logger logger = Logger.getLogger( "類MyAroundInterceptor ");
調用log4j:
logger.warn( "hahah,log4j的使用! ");
總的來說用了log4j之後你就不用在你的代碼當中寫一大堆的System.out.print( "error1 ");這種代碼,因為這樣是很不利於維護的。
B. spring如何配置log4j
Spring是可以配置LG4G的,這個完全是可以實現的。
C. 如何查看 log4j 載入 哪個 配置
自動載入配置文件:
(1)如果採用log4j輸出日誌,要對log4j載入配置文件的過程有所了解。log4j啟動時,默認會尋找source folder下的log4j.xml配置文件,若沒有,會尋找log4j.properties文件。然後載入配置。配置文件放置位置正確,不用在程序中手動載入log4j配置文件。如果將配置文件放到了config文件夾下,在build Path中設置下就好了。
若要手動載入配置文件如下:
(1)PropertyConfigurator.configure("log4j.properties") 默認讀取的是項目根目錄的路徑。此時的log4j.properties要放在項目目錄下。
D. log4j 報錯,怎樣修改配置
請帖出配置文件及錯誤日誌。
E. 如何編寫log4j.properties文件,配置日誌信息
第一步:在工程中加入log4j所使用的jar文件
1:項目 > 屬性 :彈出項目的屬性窗口
2:java構建路徑>?庫>?添加外部JAR:彈出選擇JAR的窗口
3:通過選擇JAR的窗口,找到log4j-1.2.x.jar,並確認
4:回到項目的屬性窗口,點擊確定
第二步:創建log4j.properties文件
1:選擇欲使用log4j的項目>?右鍵點擊src >?新建>?其他 :彈出選擇向導窗口
2:在選擇向導窗口中,選擇常規?> 文件?> 下一步:彈出新建文件的窗口
3:在新建文件窗口中,輸入文件名log4j.properties ? 完成:創建工作結束
第三步:使用log4j記錄日誌信息
import org.apache.log4j.Logger;
public class Log4j {
public static void main(String[] args) {
Logger logger = Logger.getLogger(AccpTeacherLog4j.class.getName());//獲取日誌記錄器,這個記錄器將負責控制日誌信息
try {
logger.debug("設置教員的編號。");//使用Logger對象的debug、info方法輸出日誌信息
} catch (IllegalArgumentException ex) {
logger.info(ex.getMessage());//使用Logger對象的debug、info方法輸出日誌信息
}
}
}
第四步:編寫log4j.properties文件,配置日誌信息
### 把日誌信息輸出到控制台 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender//日誌信息將寫到控制台
log4j.appender.stdout.Target=System.out//信息列印到System.out上
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n//指定輸出格式:顯示日期和log信息
### 把日誌信息輸出到文件:accp.log ###
log4j.appender.file=org.apache.log4j.FileAppender//日誌信息將寫到文件中
log4j.appender.file.File=accp.log//指定日誌輸出的文件名
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %m%n//指定輸出格式:顯示日期,日誌發生位置和日誌信息
### 設置優先順序別、以及輸出源 ###
log4j.rootLogger=debug, stdout, file//設置優先順序別為debug、
日誌被輸出到多個輸出源
註:優先順序從高到低分別是ERROR、WARN、INFO、DEBUG
在此處,如果優先順序別設為info,那麼使用debug方法列印的日誌信息將不被輸出
F. log4j 一個線程記錄一個日誌如何配置
log4j.rootLogger 是配置log4j的根logger
具體配置方法請看下面代碼
log4j.properties配置文件講解如下:
# Set root logger level to DEBUG and its only appender to A1
#log4j中有五級logger
#FATAL 0
#ERROR 3
#WARN 4
#INFO 6
#DEBUG 7
配置根Logger,其語法為:
#log4j.rootLogger = [ level ] , appenderName, appenderName, …
log4j.rootLogger=INFO, A1 ,R
#這一句設置以為著所有的log都輸出
#如果為log4j.rootLogger=WARN, 則意味著只有WARN,ERROR,FATAL
#被輸出,DEBUG,INFO將被屏蔽掉.
# A1 is set to be a ConsoleAppender.
#log4j中Appender有幾層如控制台、文件、GUI組件、甚至是套介面伺服器、NT的事件記錄器、UNIX Syslog守護進程等
#ConsoleAppender輸出到控制台
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1 使用的輸出布局,其中log4j提供4種布局. org.apache.log4j.HTMLLayout(以HTML表格形式布局)
#org.apache.log4j.PatternLayout(可以靈活地指定布局模式),
#org.apache.log4j.SimpleLayout(包含日誌信息的級別和信息字元串),
#org.apache.log4j.TTCCLayout(包含日誌產生的時間、線程、類別等等信息)
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
#靈活定義輸出格式 具體查看log4j javadoc org.apache.log4j.PatternLayout
#d 時間 ....
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
#R 輸出到文件 RollingFileAppender的擴展,可以提供一種日誌的備份功能。
log4j.appender.R=org.apache.log4j.RollingFileAppender
#日誌文件的名稱
log4j.appender.R.File=log4j.log
#日誌文件的大小
log4j.appender.R.MaxFileSize=100KB
# 保存一個備份文件
log4j.appender.R.MaxBackupIndex=1 log4j.appender.R.layout=org.apache.log4j.TTCCLayout
#log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
配置根Logger,其語法為:
log4j.rootLogger = [ level ] , appenderName, appenderName, ...
level 是日誌記錄的優先順序
appenderName就是指定日誌信息輸出到哪個地方。您可以同時指定多個輸出目的地。
配置日誌信息輸出目的地Appender,其語法為
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
...
log4j.appender.appenderName.option = valueN
Log4j提供的appender有以下幾種:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天產生一個日誌文件),
org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件),
org.apache.log4j.WriterAppender(將日誌信息以流格式發送到任意指定的地方)
配置日誌信息的格式(布局),其語法為:
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1
....
log4j.appender.appenderName.layout.option = valueN
Log4j提供的layout有以下幾種:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以靈活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日誌信息的級別和信息字元串),
org.apache.log4j.TTCCLayout(包含日誌產生的時間、線程、類別等等信息)
G. log4j在java的web項目中怎麼用的,如何配置等等。。
在web.xml中添加配置:
<!-- 配置log4j配置文件的路徑,可以是xml或 properties(此參數必須配)-->
下面使用了classpath 參數指定log4j.properties文件的位置,這樣log4j的配置文件就不用非要放到src的下面:
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:config/log4j/log4j.properties</param-value>
</context-param>
使用spring的監聽器,當應用啟動時來讀取log4j的配置文件
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
H. maven 怎樣配置log4j
1. 如果你使用 log4j 1.x 版本 這么配置
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
2. 如果你使用 log4j 2.x 版本 這么配置
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.6.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.6.2</version>
</dependency>
I. log4j2的資源文件具體怎麼配置
log4j2和log4j是全局配置的,只能有一個配置文件。 你說的引入另外一個jar,裡面的某些方法不想被主工程的log4j2攔截嗎? 你可以在Log4j2.xml中,對攔截的包進行單獨配置。 如果不能達到需求,建議去log4j2官網文檔,十分之詳細。