log4j 日志配置
?
Log4j教程 - Log4j安裝
?
Log4j API包是根據Apache軟件許可證分發的。
最新的log4j版本,包括全源代碼,類文件和文檔可以在http://logging.apache.org/log4j/找到。
我們可以從上面的鏈接下載apache-log4j-x.x.x.tar.gz或zip文件。
支持庫
我們可以使用log4j將信息記錄到各種目的地,例如發送電子郵件,數據庫或文件。
有一個我們需要放到classpath的庫的列表,以便log4j可以拿起它并使用它。
例如,當從log4j發出電子郵件時,我們需要電子郵件庫jar文件。
庫是可選的,并且取決于我們將要與log4j框架一起使用的功能。
-
JavaMail API(mail.jar):?從https://glassfish.dev.java.net/javaee5/mail/用于基于電子郵件的日志記錄。
-
JavaBeans Activation Framework(activation.jar):?來自http://java.sun.com/products/javabeans/jaf/index.jsp。
-
Java Message Service:?用于JMS和JNDI。
-
XML Parser(Xerces.jar):?來自http://xerces.apache.org/xerces-j/install.html。
Maven和Log4j
首先,使用以下maven命令創建一個空的Maven項目。
C:\mvn_test>mvn archetype:generate -DgroupId=com.w3cschool.ide -DartifactId=MyTest -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false然后,轉到項目文件夾并找到pom.xml,添加以下依賴關系。
<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version> </dependency>?
之后,將以下代碼添加到在resources文件夾下創建的log4j.properties。
MyTest|+-src|+-main|+-java| || +-com| || +-w3cschool| || +-ide|+-resources|+- log4j.properties?
如上面的文件夾結構所示,資源位于java文件夾的保存級別。?
對于Java Web應用程序,將log4j.properties文件存儲在WEB-INF/classes目錄下 將以下配置保存到log4j.properties文件中。
# Root logger option log4j.rootLogger=DEBUG, stdout, file# Redirect log messages to console 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=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n# Redirect log messages to a log file, support file rolling. log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.File=C:\\log4j.log log4j.appender.file.MaxFileSize=5MB log4j.appender.file.MaxBackupIndex=10 log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n?
最后一個%m%n?配置log4j以添加換行符。
%L設置從記錄請求的行號。
%c{1}引用通過?getLogger()設置的日志記錄名稱。
%-5p設置日志記錄優先級,如DEBUG或ERROR。
log4j日志級別配置參數說明:
#通過根日志記錄器指定日志級別及輸出源 #日志輸出的優先級: debug < info < warn < error < fatal #定義根日志記錄器的日志級別(info)及輸出源的別名(console,myFile) #該定義讓日志在控制臺和文件輸出,并且只輸出info級別以上的日志 log4j.rootLogger=info,console,myFile#######配置輸出源console的具體實現為控制臺輸出####### #定義輸出源別名console(即根日志記錄器定義的輸出源) #的實現類是ConsoleAppender(控制臺輸出源)log4j.appender.console=org.apache.log4j.ConsoleAppender #指定日志輸出格式的格式轉換器為PatternLayout實現類 log4j.appender.console.layout=org.apache.log4j.PatternLayout #定義日志輸出的具體格式 log4j.appender.console.layout.ConversionPattern=%d %-5p [%c.%M()] - %m%n #######配置輸出源myFile的具體實現為文件輸出####### #定義輸出源別名myFile(即根日志記錄器定義的輸出源) #的實現類是RollingFileAppender(文件輸出源)log4j.appender.myFile=org.apache.log4j.RollingFileAppender #定義日志文件的存儲路徑 log4j.appender.myFile.File=src/log/logProperties/log4j.log #定義日志文件的大小 log4j.appender.myFile.MaxFileSize=1024kb #定義日志文件最多生成幾個(從0開始算1個,即此處最多3個文件) #超過該大小則會覆蓋前面生成的文件 log4j.appender.myFile.MaxBackupIndex=2 #指定日志輸出格式的格式轉換器為PatternLayout實現類 log4j.appender.myFile.layout=org.apache.log4j.PatternLayout #定義日志輸出的具體格式 log4j.appender.console.layout.ConversionPattern=%d %-5p [%c.%M()] - %m%n #######輸出格式解釋####### #%d: 日志打印的時間點,默認格式為ISO8601,也可以另外指定格式, #定義如下: %d{yyy年MM月dd日 HH時mm分ss秒SSS},則會輸出: #2018年01月06日 14時47分45秒590 #%p: 輸出日志級別,即DEBUG,INFO,WARN,ERROR,FATAL #%-5p:表示字符小于5位,則字符居左(不加“-”號則字符居右),你可以舉一反三 #%c: 日志所在類的全名 #%M: 日志所在方法的名字 #%m: 日志信息 #%n: 輸出一個回車換行符 #%L: 輸出代碼中的行號最后添加以下代碼App.java并運行應用程序。
package com.w3cschool.ide;import org.apache.log4j.Logger;public class App{final static Logger logger = Logger.getLogger(App.class);public static void main(String[] args) {App obj = new App();obj.runMe("w3cschool");}private void runMe(String parameter){if(logger.isDebugEnabled()){logger.debug("This is debug : " + parameter);}if(logger.isInfoEnabled()){logger.info("This is info : " + parameter);}logger.warn("This is warn : " + parameter);logger.error("This is error : " + parameter);logger.fatal("This is fatal : " + parameter);}}?
以下代碼顯示如何記錄異常。
import org.apache.log4j.Logger;public class App {final static Logger logger = Logger.getLogger(App.class);public static void main(String[] args) {App obj = new App();try {obj.divide();} catch (ArithmeticException ex) {logger.error("Sorry, something wrong!", ex);}}private void divide() {int i = 10 / 0;}}?
轉載于:https://www.cnblogs.com/daijiabao/p/11217049.html
總結
以上是生活随笔為你收集整理的log4j 日志配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网站通用 敏感词列表
- 下一篇: 南方科技大学计算机交换生,国际合作 –