Flink记录器nullPointException

时间:2020-01-14 16:53:19

标签: apache-flink flink-streaming

我想用Flink代码编写log。因此,我将这些行添加到conf/log4j.properties中:

log4j.logger.myLogger=DEBUG, FILE
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.FILE.File=myLog.out
log4j.appender.FILE.ImmediateFlush=true
log4j.appender.FILE.Threshold=debug
log4j.appender.FILE.Append=true
log4j.appender.FILE.DatePattern='.' yyyy-MM-dd-HH-mm
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.myLogger.layout.conversionPattern=%d %-5p %c - %m%n

然后,我在地图类中获得记录器实例,如下所示:

private transient Logger logger = LoggerFactory.getLogger("FILE");

private transient Logger logger = LoggerFactory.getLogger(MapClass.class);

但是,当我使用记录器实例时,我得到nullPointException

请问我是怎么了?

谢谢。

1 个答案:

答案 0 :(得分:2)

您的记录器被标记为瞬态的,因此序列化后为null。

您必须在RichMapFunction的open()方法中对其进行初始化,或者只是使其变为静态。