gpt4 book ai didi

c++ - 提升日志记录 - 目的地和格式化程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:46:03 26 4
gpt4 key购买 nike

我在使用 Boost Logging 时遇到问题库,如果我使用自己的 Log 类向记录器添加格式化程序或目标,则无法更改该目标或格式化程序。

有人知道如何更改 boost 日志对象的目标或格式化程序吗?

我的情况是我想要一个不同的 destination (文件名)对于我的服务器组件处理的每个请求,所以我需要有灵活的方式来改变它们。此外,我将同时从不同的线程记录日志,并且每个日志实际上应该有它自己的目的地,很容易添加 - 删除。

使用宏的日志记录对象实际上是应用程序全局的这一事实并没有真正帮助这一点。

任何人都可以给我一些指导,告诉我如何创建一种灵活的方法来从 boost::logging 添加/删除 Logger 的目的地吗?

最佳答案

好的,这就是我要尝试的。它可能对你有用。看起来日志库是为全局记录器量身定制的,而您想要使用线程本地记录器。我会查找如何按需(即直接)创建记录器,例如通过分析 BOOST_DECLARE_LOG .然后你可以声明一个std::map<int, Logger>用于将线程 ID 映射到特定记录器。也许您可以创建自己的包装类来为客户端代码透明地处理这个问题。然后您只需使用自己的日志记录层进行记录,并在需要时创建特定于线程的记录器。如果您需要在请求完成后删除它们,您可以添加一个方法来执行此操作。

希望这对您有所帮助!

关于c++ - 提升日志记录 - 目的地和格式化程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4468756/

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