gpt4 book ai didi

java - 如何验证 log4j2 是否通过 LMAX disruptor 异步记录?

转载 作者:搜寻专家 更新时间:2023-10-30 19:42:46 24 4
gpt4 key购买 nike

我正在开发一个 Eclipse RCP 应用程序,为了让 log4j2 在该应用程序中工作,我付出了一些努力。现在一切似乎都很好,作为画龙点睛之笔,我想制作 all loggers asynchronously .

我已经设法在类路径中获取 LMAX Disruptor,并且认为我已经解决了 issue也提供 sun.misc。在运行配置中设置 VM 参数 -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector 并正确设置 log4j2.xml 文件。 我认为。这就是问题所在。我希望能够验证我的应用程序是否以正确的方式异步登录,这样我就可以享受延迟方面的好处。

然后,我该如何验证我的记录器是否正在异步工作,并在此过程中使用 LMAX Dirsuptor?

最佳答案

有两种类型的异步记录器,由不同的类处理。

  1. 所有记录器异步:AsyncLogger类 - 使用 AsyncLoggerContextSelector 时激活
  2. 混契约(Contract)步与异步记录器:AsyncLoggerConfig class - 当你的配置文件有 <AsyncRoot><AsyncLogger>元素嵌套在 <Loggers> 的配置中.

在您的情况下,您要使所有记录器异步,因此您想将断点放在 AsyncLogger#logMessage(String, Level, Marker, Message, Throwable) 中.

另一种验证方法是设置 <Configuration status="trace">在配置文件的顶部。这将在配置 log4j 时输出内部 log4j 日志消息。您应该会看到类似“正在启动 AsyncLogger 中断器...”的内容。如果您看到这个,所有记录器都是异步的。

关于java - 如何验证 log4j2 是否通过 LMAX disruptor 异步记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33293059/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com