【发布时间】:2017-11-30 17:40:21
【问题描述】:
可以使用 [property] 配置创建为 log4j2 日志文件添加时间戳:
appender.FILE.type = FILE
appender.FILE.name = FILE
appender.FILE.fileName = file-with-date-${date:yyyy-MM-dd}.log
appender.FILE.layout.type = PatternLayout
appender.FILE.layout.pattern =[%p] %m%n
这将在file-with-date-2017-11-30.log 中生成日志文件。如何使用编程配置实现相同的行为?这是我迄今为止尝试过的:
PatternLayout layout = PatternLayout.newBuilder()
.withConfiguration(ctx.getConfiguration())
.withPattern("%m%n").build();
FileAppender fileAppender = FileAppender.newBuilder()
.withLayout(layout)
.withFileName( "file-with-date-${date:yyyy-MM-dd}.log")
.withName("pattern")
.build();
但这会产生以下文件:file-with-date-${date:yyyy-MM-dd}.log。因此,使用属性配置:使用以编程方式创建的附加程序 ${date:yyyy-MM-dd}.log 创建具有当前日期的日志文件被忽略。
【问题讨论】:
-
当您可以将
RollingFileAppender与时基策略一起使用时,为什么还要经历所有这些? logging.apache.org/log4j/2.x/manual/…