apache-flink - Flink Logger nullPointException
问题描述
我想用log
Flink 代码编写。因此,我将这些行添加到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
当我使用记录器实例时,我得到了。
请您指导我有什么问题吗?
先感谢您。
解决方案
您的记录器被标记为瞬态,因此在序列化后它为空。
您要么必须在 RichMapFunction 的 open() 方法中对其进行初始化,要么将其设为静态。
推荐阅读
- html - 弹性盒:弹性基础:100%;不换行
- python - 如何给命令多个名称?
- java - 新按钮的 XML 代码不起作用
- xgboost - 需要 xgboost.train 概率输出
- python - 昼夜循环不起作用(graphics.py)
- java - 关于 Nexus 工件和构建说明的 Dockerfile 最佳实践
- jquery - 如何防止 xdsoft datetimepicker 中的自动修复值
- python - python的H264和opencv问题
- c# - 何时以及为何访问 CoreWindow.ActivationMode 会引发 InvalidCastException?
- docker - docker 容器中的 Sonarcube 凭据