SKS_CODER 2017-07-12 08:18 采纳率: 0%
浏览 2927
已采纳

log4j2是否存在线程安全问题

应用中定义了一个日志打印切面,切面中定义了一些静态的logger成员变量,类似于这样
private static final Logger logger = LoggerFactory.getLogger(ApiLogAspect.class);
现在的问题是多个线程使用同一个logger是否会存在安全问题。
谢谢各位大佬各显神通

  • 写回答

2条回答 默认 最新

  • MaxCode-1 2017-07-12 08:35
    关注

    Log4j组件设计用于大量多线程系统
    log4j是线程安全的。原因是AppenderSkeleton.doAppend()方法是同步的。但要小心配置编程! 例如,您不能在不同的appender中使用相同的TTCCLayout实)!看看PatternLayout方法format()。它改变实例字段(StringBuffer sbuf),所以如果你在不同的appender中使用相同的PatternLayout实例,你将面临竞争条件。EnhancedPatternLayout更好,因为他们修改格式化方法。
    希望对你有用
    http://blogxinxiucan.sh1.newtouch.com/2017/06/27/Hello/

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 ImportError: DLL load failed while importing _iterative: 找不到指定的模块。
  • ¥15 控制工程研究生方向选择
  • ¥15 如何通过交互分析得出某高危患者对放疗获益更多
  • ¥15 相关性分析中,p<0.05, r=0.29,怎么评价相关性呢
  • ¥15 docker部署Mongodb后输入命令报错?
  • ¥15 将下列流程图转变成python程序代码
  • ¥15 我需要全国每个城市的最新小区名字等数据。
  • ¥15 开发一个小区生态的小程序
  • ¥15 如何解决Excel中dependent dropdown list 的问题
  • ¥15 MddBootstrapInitialize2失败