I want to write log
in Flink code. So, I add these lines in the 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
Then, I get the logger instance in my map class as follow:
private transient Logger logger = LoggerFactory.getLogger("FILE");
or
private transient Logger logger = LoggerFactory.getLogger(MapClass.class);
But, I get nullPointException
, when I use the logger instance.
Would you please guide me that what is wrong?
Thank you in advance.
Your logger is marked as transient, so after serialization it is null.
You either have to initialize it in the open() method of your RichMapFunction, or just make it static.