我有一个使用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,桑德罗