如何使用BOOST_LOG_TRIVIAL宏将任何内容记录到stdout / stderr和file

时间:2014-01-15 10:59:37

标签: c++ boost boost-log

如何使用BOOST_LOG_TRIVIAL宏将任何内容记录到stdout / stderr和文件中?

如果我这样做

  boost::log::add_file_log
  (
    boost::log::keywords::file_name =
      "logs/%Y-%m-%d_%H-%M-%S.%N.log",
    boost::log::keywords::rotation_size = 10 * 1024 * 1024,
    boost::log::keywords::time_based_rotation =
      boost::log::sinks::file::rotation_at_time_point(0, 0, 0),
    boost::log::keywords::format = "[%TimeStamp%]: %Message%"
  );
  boost::log::add_common_attributes();

它不会将任何内容记录到stdout / stderr,只记录文件。

1 个答案:

答案 0 :(得分:1)

在了解Boost Log时,我遇到了这个问题的答案:

更改或添加默认core接收器的流将替换默认流(stdout)。要将其添加回来,您可以将boost::log::add_console_log(std::cout)与关联的格式说明符一起使用。只需为stdout和stderr添加std::coutstd::clog

此方法可在此标头文件中找到:boost/log/utility/setup/console.hpp