对于log4j 的extends AppenderSkeleton 自定义日志(logging),升级成log4j2日志(event),如果将event直接放进多线程或者线程池中,在队列中,当去取levent的相关信息时,会出现日志级别无法获取到的现象。此时,需要用log4j2的特有的方法 event.toImmutable(), 此方法是copy一个一模一样的 event ,这样再去获取相关的日志级别、相关信息就可以获取到了。
因为log4j2采取的是异步机制,logger的创建到销毁周期特别短。