Creating log4j log file for each run with Date and timestamp

后端 未结 2 1142
粉色の甜心
粉色の甜心 2021-01-12 16:37

All, it seems like this question is posted multiple times but still i haven\'t got proper solution for my problem. I referred this and this but its not working.

As p

相关标签:
2条回答
  • 2021-01-12 16:39

    One simple way to execute this is: 1.) setting a property in before hooks for the current timestamp.

        SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy-hh-mm-ss");
        System.setProperty("current.date.time", dateFormat.format(new Date()));
    

    2.) Use this env variable property to create your logger file name log4j.appender.file.File=${user.dir}/logs/Logger_${current.date.time}.logs

    0 讨论(0)
  • 2021-01-12 16:43

    EDIT - removed the DailyFileAppender suggestion.

    You can create your own FileAppender, like this:

    public class NewFileOnRebootAppender extends FileAppender {
    
        public NewFileOnRebootAppender() {
        }
    
        @Override
        public void setFile(String file) {
            super.setFile(prependDate(file));
        }
    
        private static String prependDate(String filename) {
            return System.currentTimeMillis() + "_" + filename;
        }
    }
    

    And use it like this:

    log4j.appender.fileOnReboot=yourPackage.NewFileOnRebootAppender
    log4j.appender.fileOnReboot.File=appLogOnReboot.log
    log4j.appender.fileOnReboot.layout=org.apache.log4j.PatternLayout
    log4j.appender.fileOnReboot.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
    

    The naming of the file is not perfect, but you get the idea..

    0 讨论(0)
提交回复
热议问题