【问题标题】:Boost.Log Configuration FilesBoost.Log 配置文件
【发布时间】:2014-11-08 19:24:53
【问题描述】:

我正在向旧的 C++ 程序添加日志记录。经过一番研究,我决定使用 Boost Log 。该文档充满了创建接收器和过滤器的示例。但是,我找不到任何日志配置文件的示例。

有没有办法从不需要编译的文件配置日志记录?类似于 log4net 有什么?或者 Python(好吧,反正 Python 没有被编译……)?

【问题讨论】:

    标签: c++ logging boost configuration


    【解决方案1】:

    最终我找到了官方文档,要么是最近添加的,要么是隐藏得很好,之前没看到:

    http://www.boost.org/doc/libs/1_57_0/libs/log/doc/html/log/detailed/utilities.html#log.detailed.utilities.setup.settings_file


    很遗憾,我也找不到详尽的答案,但有一些观察:

    当然可以使用配置文件:

    boost::log::init_from_stream(std::basic_istream< CharT > &)

    文件示例(来自Boost log severity_logger init_from_stream):

    [Sinks.MySink]
    Destination=Console
    Format="%LineID%: <%Severity%> - %Message%"
    

    通过以下链接,您可以识别其他有效的设置键和值(例如 Destination=TextFile、Filter=、AutoFlush=、FileName=)

    http://boost.2283326.n4.nabble.com/log-init-from-settings-problem-with-applying-format-and-filter-td3643483.html

    boost 的 parser_utils.hpp 中的常量给出了配置文件默认支持的关键字的另一种想法(例如,带有键 DisableLogging 的 [Core] 部分)。

    此处描述了为用户定义类型提供设置(在页面末尾带有相应的配置文件的 sn-p):

    http://www.boost.org/doc/libs/1_57_0/libs/log/doc/html/log/extension/settings.html

    在我看来,很难找到配置文件格式条目的描述,因为有效条目源自实现接收器、过滤器等的源代码。这个实现甚至可能是用户定义的,因此不可能给出明确的配置格式描述。

    也许您可以尝试以编程方式创建配置,并且在将其转换为配置文件的形式时,您可以针对无法了解如何设置它们的特定属性打开单独的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-15
      • 1970-01-01
      • 2012-03-06
      • 1970-01-01
      • 2018-09-08
      • 2015-09-18
      • 1970-01-01
      相关资源
      最近更新 更多