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,然后它说RollingPolicyDatePattern 不是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介绍

Flink从入门到精通100篇(二十一)-Apache Flink 与 Apache Hive 的集成

apache flink入门一

Apache Flink 欺诈交易检测

如何选择Apache Spark和Apache Flink