gpt4 book ai didi

C++ 线程名称映射和 log4cxx

转载 作者:行者123 更新时间:2023-11-28 08:10:28 30 4
gpt4 key购买 nike

有了 std::thread,现在可以轻松地在程序状态中保留线程名称列表(通过包装线程,或使用单例来管理线程列表。)

我开始使用 log4cxx 进行日志记录,我想让它显示线程名称。但是,这意味着我不能使用 PatternLayout。线程编号本身并不是很有用。

最好的方法是什么?我是坚持只输出 map ,还是可以以一种聪明的方式覆盖 PatternLayout/ConversionPattern 来做我想做的事?如果我重载它,我如何指向配置文件中的类?或者我可以添加一个转换字符吗?

最佳答案

在程序中设置记录器之前使用 MDC 放置线程名称

 MDC::put( "threadName", threadNameString);

然后在 XML 配置中

   <layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%X{threadName} "/>
</layout>

因此在每条日志消息中都会出现您的线程名称。

有关更多信息,请查看此问题的答案:Add process id to log file name in log4cxx

关于C++ 线程名称映射和 log4cxx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9246677/

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