C++线程名称映射和 log4cxx
使用 std::thread ,现在可以轻松地在程序状态中保留线程名称列表(通过包装线程,或使用单例来管理线程列表)。
我开始使用 log4cxx 进行日志记录,我想让它显示线程名称。但是,这意味着我无法使用 PatternLayout。线程号本身并不是很有用。
最好的方法是什么?我是否只能输出地图,或者我可以以巧妙的方式重写 PatternLayout
/ConversionPattern
来完成我想要的事情吗?如果我重载它,我如何指向配置文件中的类?或者我可以添加一个转换字符吗?
With std::thread
, it is now trivial to keep a list of threads names in the program state (either by wrapping the thread, or by using a singleton to manage the thread list.)
I am starting to use log4cxx for my logging, and I'd like to have it display the thread name. However, this means I cannot use the PatternLayout. The thread numbers aren't very useful on their own.
What is the best way to do this? Am I stuck with just outputting a map, or can I override PatternLayout
/ConversionPattern
in a clever way to do what I want? And if I overload it, how do I point to the class in the config file? Or can I possibly add a conversion character?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在程序中设置记录器之前使用 MDC 输入线程名称
然后在 XML 配置中
因此在每条日志消息中都会显示您的线程名称。
有关详细信息,请检查此问题的答案:将进程 ID 添加到日志log4cxx 中的文件名
Put your thread names using MDC before setting logger in your program
Then at XML config
So at each log message your thread name will apear.
For more info check answer of this question: Add process id to log file name in log4cxx