簡體   English   中英

如何使用java log4j將日志文件保存在逐月文件夾中?

[英]How to keep my log files in monthwise folder using java log4j?

我需要將所有log4j日志文件保存在一個單獨的月份明智的文件夾中。例如,實例考慮此一月月份的日志應保存在一月文件夾中,一旦二月開始,則應在該二月月份文件夾中創建日志,反之亦然。

誰能幫我實現這一目標。

提前致謝。

以下是mylog 4j配置:

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 %3x - %m%n
Log to file FILE
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=D:\logfile.log
log4j.appender.file.DatePattern='.'dd/MM/yyyy
log4j.appender.file.append=true
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern= %m%n

以下是我的Java代碼:

final static Logger logger = Logger.getLogger(CarParser1.class);

public class CarParser1 {

final static Logger logger = Logger.getLogger(CarParser1.class);
static validatexml vxx=new validatexml();
static mailer mailobj=new mailer();
 DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
 Date date=new Date();


public String getHeader()
{
         logger.info("************************************
************************************
****************************************");
    logger.info("                                         
 CAR    VALIDATOR 
V1.1                                                       ");

    logger.info("       
                      By Software Team,    Thomson Digital,   
  India. 
                                                                  ");
       logger.info("***************************
********************************
*****************************************************");
     logger.info("\n\n");
    logger.info("\nExecution Date & Time :"+dateFormat.format(date));
        logger.info("********************************
*******************************************");  
return "";
}

-----------


如果您使用的是Linux機器,則可以使用這樣的Shell腳本

MONTH=`date +%m`
YEAR=`date +%Y`
# Backup directory for logs
BKDIR="/logbackups/$YEAR/$MONTH"

#create directory
if [ ! -d "$BKDIR" ]; then
    mkdir -p $BKDIR
fi

find /path/to/logs/ -type f -mtime +30 -exec mv {} /logbackups/$YEAR /$MONTH/ \;

並編寫將每月運行一次的Cron作業

0 0 1 * * /path/to/script

Log4j僅支持使用“ org.apache.log4j.DailyRollingFileAppender”進行每日滾動日志記錄。 您可以使用受損的方法(例如shell腳本)或創建自定義的附加程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM