使用log4j使某些java類的日志信息輸出到指定日志文件中


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
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM