Log4j 是 Apache 的一個開放源代碼項目,通過使用 Log4j,我們可以控制日志信息輸送的目的地是控制台、文件、GUI 組件、甚至是套接口服務器、NT 的事件記錄器、UNIX Syslog 守護進程等;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級別,我們能夠更加細致地控制日志的生成過程。最令人感興趣的就是,這些可以通過一個配置文件來靈活地進行配置,而不需要修改應用的代碼。
應項目需求,需要處理項目中某些java類所產生的跑批日志信息和平常操作產生的業務日志信息分開保存,故重新配置log4j.properties,使得滿足要求。
1、 平常的業務日志文件有front_log.log和front_error_log.log,log4j.properties配置如下
log4j.rootLogger=DEBUG,CONSOLE,DATABASE,D,R
log4j.addivity.org.apache=false
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.layout.ConversionPattern= %d{yyyy-MM-dd HH\:mm\:ss} %5p [%c] (%L) - %m%n
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.Encoding=gbk
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
##日志信息測試按天生成,有效期最低3個月,最多4個月
log4j.appender.D = com.sinosoft.utils.CustomDailyRollingFileAppender
log4j.appender.D.File =${catalina.home}/logs/front_log #log4j.appender.D.File =/eptms/eptms/log/logs/main/front_log
log4j.appender.D.datePattern = yyyy-MM-dd'.log'
log4j.appender.D.Append = true
log4j.appender.D.Threshold = info
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern =%d{yyyy-MM-dd HH\:mm\:ss} %5p [%c] (%L) - %m%n
##錯誤日志文件
log4j.appender.R = com.sinosoft.utils.CustomDailyRollingFileAppender
log4j.appender.R.File =${catalina.home}/logs/front_error_log
#log4j.appender.R.File =/eptms/eptms/log/logs/main/front_error_log
log4j.appender.R.datePattern = yyyy-MM-dd'.log'
log4j.appender.R.Append = true
log4j.appender.R.Threshold = error
log4j.appender.R.layout = org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern =%d{yyyy-MM-dd HH\:mm\:ss} %5p [%c] (%L) - %m%n
在log4j.properties中日志的生成方式,我這里根據jar里的方法重寫了;
具體請參考:https://blog.csdn.net/su1573/article/details/86582678
2、新增跑批日志配置,如下:
規則:保存的文件為front_batch.log
日志數量:90個
#跑批日志 log4j.logger.batch=INFO,ERROR,batchFile log4j.addivity.batchFile=false log4j.appender.batchFile = org.apache.log4j.DailyRollingFileAppender log4j.appender.batchFile.File =${catalina.home}/logs/front_batch #log4j.appender.D.File =/eptms/eptms/log/logs/batch/front_batch log4j.appender.batchFile.datePattern = yyyy-MM-dd'.log' log4j.appender.batchFile.Append = true #log4j.appender.D.Threshold = info log4j.appender.batchFile.MaxBackupIndex=90 log4j.appender.batchFile.layout = org.apache.log4j.PatternLayout log4j.appender.batchFile.layout.ConversionPattern =%d{yyyy-MM-dd HH\:mm\:ss} %5p [%c] (%L) - %m%n
3、在具體的java類中引用
import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class TestDemo{ //指定跑批日志 private static Log logger= LogFactory.getLog("batch"); public void test(){ logger.info("憑證生成-開始執行自動跑批任務^_^"); } }
---------------------
作者:su1573
來源:CSDN
原文:https://blog.csdn.net/su1573/article/details/87882929
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!