每次调用logger.info()方法时,log4j创建新的日志文件

时间:2018-07-19 07:56:26

标签: java log4j

我有一个使用log4j实现Java应用程序的请求。每当我调用log4j方法info()或其他方法之一时,记录器都应始终创建一个新的日志文件。我没有让它工作。日志文件名应如下所示: IB.YYMMdd.IncrementNumber

模式也可能类似于IB.YYMMddhhmmss(以毫秒为单位的日期)。

我已经实现了一个CustomFileAppender,但该方法无效。

每次Java运行时,我的消息始终写入相同的日志文件中。但是,每次调用info方法时,我都希望有新的日志文件。

使用log4j是否有可能实现我的目标。

我当前的Java代码:

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.TimeUnit;

import org.apache.log4j.Logger;

public class Log4jTest {

    static {

           SimpleDateFormat dateFormat = new SimpleDateFormat("YYMMddhhmmss");
            System.setProperty("current.date.time", dateFormat.format(new Date()));
    }

    final static Logger log = Logger.getLogger(Log4jTest.class);

    public static void main(String[] args) throws InterruptedException {
        log.info("Message 1");
        Thread.sleep(TimeUnit.SECONDS.toMillis(2));
        log.info("Message 2");
    }
}

我的log4jproperties文件:

log4j.rootLogger=ALL, stdout, file
logDir = C:\\temp

# Redirect logs to console
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{1}:%L - %m%n

# Redirect logs to a file
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=${logDir}/IB.${current.date.time}.log
log4j.appender.file.append=false
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

提前谢谢。

BR,桑德罗

0 个答案:

没有答案