【问题标题】:thread waits in log4j线程在 log4j 中等待
【发布时间】:2020-09-09 18:29:31
【问题描述】:

我们正在接收线程锁(PFB 线程转储)。你能告诉我们为什么我们会收到它吗? 请注意,我们使用 Java 1.5、weblogic 9.1、log4j 版本 1.2.8

[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'" 守护进程 prio=2 tid=0x01d332b0 nid=0x23 等待监视器条目 [0x5fffd000..0x5ffffb10] 在 org.apache.log4j.Category.callAppenders(Category.java:185) - 等待锁定 (一个 org.apache.log4j.spi.RootCategory) 在 org.apache.log4j.Category.forcedLog(Category.java:372) 在 org.apache.log4j.Category.log(Category.java:864) 在 org.apache.commons.logging.impl.Log4JLogger.debug(Log4JLogger.java:110) 在 org.hibernate.loader.Loader.doQuery(Loader.java:687) 在 org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224) 在 org.hibernate.loader.Loader.doList(Loader.java:2150) 在 org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029) 在 org.hibernate.loader.Loader.list(Loader.java:2024) 在 org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:369) 在 org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:300) 在 org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:146) 在 org.hibernate.impl.SessionImpl.list(SessionImpl.java:1093) 在 org.hibernate.impl.QueryImpl.list(QueryImpl.java:79) 在 com.lks.myapp.data.dao.SourceCheckImpl.getSources(SourceCheckImpl.java:87)

【问题讨论】:

  • 你看过源代码吗?最后我听说 log4j 有可用的源代码。我敢打赌,如果您查看 Category.java 中的第 185 行,它会告诉您它在等待什么。
  • 查看以下链接。 log4j1.2.x issues.apache.org/bugzilla/show_bug.cgi?id=41214 存在一些性能问题,此链接引起了您的关注。

标签: multithreading log4j wait


【解决方案1】:

切换到 logback 以获得高性能日志记录。 Log4j 存在性能问题。我们在其中一款产品中也采用了同样的方法

【讨论】:

    猜你喜欢
    • 2017-05-02
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多