Apache Flink RollingFileAppender
Posted
技术标签:
【中文标题】Apache Flink RollingFileAppender【英文标题】: 【发布时间】:2017-08-22 06:26:26 【问题描述】:我正在使用 Apache Flink v1.2。我想切换到滚动文件附加程序以避免包含数天数据的巨大日志文件。但是,它似乎不起作用。我调整了 log4j 配置 (log4j.properties
) 如下:
log4j.appender.file=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.file.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.file.DatePattern='.' yyyy-MM-dd-a'.log'
log4j.appender.file.MaxBackupIndex = 15
log4j.appender.file.append=false
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%dyyyy-MM-dd HH:mm:ss,SSS %-5p %-60c %x - %m%n
首先它抱怨找不到org.apache.log4j.rolling.RollingFileAppender
。所以我将它切换到org.apache.log4j.RollingFileAppender
,然后它说RollingPolicy
和DatePattern
不是RollingFileAppender
的有效属性。
其他人是否遇到过同样的问题/您能建议此配置有什么问题吗?
【问题讨论】:
【参考方案1】:为了使用RollingFileAppender
,您首先必须将apache-log4j-extras-1.2.17.jar
添加到您的类路径中(例如,将其添加到Flink 的lib
文件夹中)。
接下来您必须对其进行配置并指定FileNamePattern
,然后再指定RollingPolicy
。通过以下log4j.properties
文件,我可以使用RollingFileAppender
。
log4j.appender.file=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.file.RollingPolicy.FileNamePattern=logs/log.%dyyyyMMdd-HHmm.log
log4j.appender.file.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.file.append=false
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%dyyyy-MM-dd HH:mm:ss,SSS %-5p %-60c %x - %m%n
【讨论】:
谢谢!同时我还发现“log4j-extras”依赖项不确定为什么默认不包含它。以上是关于Apache Flink RollingFileAppender的主要内容,如果未能解决你的问题,请参考以下文章
Apache Flink 入门,了解 Apache Flink
译文《Apache Flink官方文档》 Apache Flink介绍