JAVA Tomcat Log4j 日誌輸出到檔案
工程引用
Log4j.jar
要輸出日誌的類中引用
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
建立log4j.properties配置檔案(UTF-8)
記住儲存位置,使用PropertyConfigurator.configure載入
內容:
### 設定日誌級別 ### log4j.rootLogger=debug,stdout,logfile,WeiXinPay ### 輸出到控制檯 ### log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern = [ %p ] - [ %l ] %m%n ### 每天產生一個日誌檔案 ### log4j.appender.logfile = org.apache.log4j.DailyRollingFileAppender ### 檔案大小到達指定尺寸的時候產生一個新的檔案 ### #log4j.appender.logfile = org.apache.log4j.RollingFileAppender ### 指定日誌檔名與路徑 ### log4j.appender.logfile.File = myapplog/log4j.log ### 檔案的最大尺寸 ### log4j.appender.logfile.MaxFileSize = 512KB ### 日誌是否追加 ### log4j.appender.logfile.Append=true ### 日誌檔案字尾追加 ### log4j.appender.logfile.datePattern='_'yyyy-MM-dd-HH-mm'.log' ### 最大記錄檔案數 覆蓋 ### log4j.appender.logfile.MaxBackupIndex = 3 ### 日誌記錄字符集 ### log4j.appender.logfile.Encoding=UTF-8 ### PatternLayout佈局就要指定的列印資訊的具體格式 ### log4j.appender.logfile.layout = org.apache.log4j.PatternLayout ### PatternLayout佈局就要指定的列印資訊的具體格式 ### log4j.appender.logfile.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [ %p ] - [ %l ] %m%n ### 每天產生一個日誌檔案 ### log4j.appender.WeiXinPay = org.apache.log4j.DailyRollingFileAppender ### 檔案大小到達指定尺寸的時候產生一個新的檔案 ### #log4j.appender.WeiXinPay = org.apache.log4j.RollingFileAppender ### 指定日誌檔名與路徑 ### log4j.appender.WeiXinPay.File = myapplog/WeiXinPay/log.log ### 檔案的最大尺寸 ### log4j.appender.WeiXinPay.MaxFileSize = 512KB ### 日誌是否追加 ### log4j.appender.WeiXinPay.Append=true ### 日誌檔案字尾追加 ### log4j.appender.WeiXinPay.datePattern='_'yyyy-MM-dd-HH-mm'.log' ### 最大記錄檔案數 覆蓋 ### log4j.appender.WeiXinPay.MaxBackupIndex = 3 ### 日誌記錄字符集 ### log4j.appender.WeiXinPay.Encoding=UTF-8 ### PatternLayout佈局就要指定的列印資訊的具體格式 ### log4j.appender.WeiXinPay.layout = org.apache.log4j.PatternLayout ### PatternLayout佈局就要指定的列印資訊的具體格式 ### log4j.appender.WeiXinPay.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [ %p ] - [ %l ] %m%n
其中WeiXinPay是我java工程名稱,可以是其它名稱,Logger.getLogger時注意填寫正確就行了,可以多個工程,新增對應標籤就行了
### 指定日誌檔名與路徑 ###
log4j.appender.WeiXinPay.File = myapplog/WeiXinPay/log.log
目錄是以log4j.properties所有資料夾為根目錄
我的log4j.properties配置檔案在C:\\Program Files\\Apache Software Foundation\\Tomcat 9.0資料夾下
按照配置檔案生成的日誌檔案會在C:\\Program Files\\Apache Software Foundation\\Tomcat 9.0\\myapplog\\WeiXinPay\\下面
初始化
//WeiXinPay是我的JAVA工程名稱,log4j.properties配置檔案中有設定,你也可以起任意名字
private static Logger logger = Logger.getLogger("WeiXinPay");//API.class.getName());
// 載入log4j.properties配置檔案
PropertyConfigurator.configure("C:\\Program Files\\Apache Software Foundation\\Tomcat 9.0\\log4j.properties");
測試
logger.debug("Here is some DEBUG");
logger.info("Here is some INFO");
logger.warn("Here is some WARN");
logger.error("Here is some ERROR");
logger.fatal("Here is some FATAL");
日誌檔案內容
2018-09-04 15:35:57 [ DEBUG ] - [ com.xxxxxxxx.API.init(API.java:67) ] Here is some DEBUG
2018-09-04 15:35:57 [ INFO ] - [ com.xxxxxxxx.API.init(API.java:68) ] Here is some INFO
2018-09-04 15:35:57 [ WARN ] - [ com.xxxxxxxx.API.init(API.java:69) ] Here is some WARN
2018-09-04 15:35:57 [ ERROR ] - [ com.xxxxxxxx.API.init(API.java:70) ] Here is some ERROR
2018-09-04 15:35:57 [ FATAL ] - [ com.xxxxxxxx.API.init(API.java:71) ] Here is some FATAL