Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Boost日志记录-记录多个文件_C++_Logging_Boost - Fatal编程技术网

C++ Boost日志记录-记录多个文件

C++ Boost日志记录-记录多个文件,c++,logging,boost,C++,Logging,Boost,我正在使用以下代码,但我看不到正在生成任何日志文件。你能告诉我为什么吗?此外,如果有人知道如何使用严重性记录器在多个文件中记录日志,请发布答案。是否也必须使用频道? 或者以下代码足以在多个文件中包含日志 src::severity_logger< severity_level > m_DbLogger; BOOST_LOG_ATTRIBUTE_KEYWORD(tag_attr, "Tag", std::string) logging::formatter fmt = expr::st

我正在使用以下代码,但我看不到正在生成任何日志文件。你能告诉我为什么吗?此外,如果有人知道如何使用严重性记录器在多个文件中记录日志,请发布答案。是否也必须使用频道? 或者以下代码足以在多个文件中包含日志

src::severity_logger< severity_level > m_DbLogger;
BOOST_LOG_ATTRIBUTE_KEYWORD(tag_attr, "Tag", std::string)
logging::formatter fmt = expr::stream
<< std::setw(6) << std::setfill('0') << 1 << std::setfill(' ')
              << expr::if_(expr::has_attr(tag_attr))
              [
                  expr::stream << "[" << tag_attr << "] "
              ]
          << expr::smessage;
          // Initialize sinks
          typedef sinks::synchronous_sink< sinks::text_ostream_backend > text_sink;
          boost::shared_ptr< text_sink > sink = boost::make_shared< text_sink >();

          sink->locked_backend()->add_stream(
              //boost::make_shared< std::ofstream >(m_Settings.LogFileSQL + ".log"));
              boost::make_shared< std::ofstream >("1.log"));




          sink->set_formatter(fmt);
          sink->set_filter(!expr::has_attr(tag_attr));

          logging::core::get()->add_sink(sink);

          sink = boost::make_shared< text_sink >();

          sink->locked_backend()->add_stream(
              //boost::make_shared< std::ofstream >(m_Settings.LogFileSQL + "_diagnostics.log"));
              boost::make_shared< std::ofstream >("2.log"));

          sink->set_formatter(fmt);

          sink->set_filter((expr::has_attr(tag_attr) && tag_attr == "IMPORTANT_MESSAGE"));

          logging::core::get()->add_sink(sink);

          // Add attributes
          logging::add_common_attributes();

          BOOST_LOG_SEV(m_DbLogger, severity_level::info) << "A regular message";
          BOOST_LOG_SEV(m_DbLogger, severity_level::info) << "Something bad is going on but I can handle it";
          BOOST_LOG_SEV(m_DbLogger, severity_level::info) << "Everything crumbles, shoot me now!";

          {
              BOOST_LOG_SCOPED_THREAD_TAG("Tag", "IMPORTANT_MESSAGE");
              BOOST_LOG_SEV(m_DbLogger, severity_level::info) << "An important message";
          }
src::severity\u loggerm\u DbLogger;
BOOST\u LOG\u ATTRIBUTE\u关键字(tag\u attr,“tag”,std::string)
日志::格式化程序fmt=expr::流
set_filter(!expr::has_attr(tag_attr));
logging::core::get()->add_sink(sink);
sink=boost::使_共享();
接收器->锁定的\u后端()->添加\u流(
//boost::使_共享(m_Settings.LogFileSQL+“_diagnostics.log”);
boost::使_共享(“2.log”);
接收器->设置格式化程序(fmt);
sink->set_filter((expr::has_attr(tag_attr)&&tag_attr==“重要消息”);
logging::core::get()->add_sink(sink);
//添加属性
日志记录::添加公共属性();

BOOST_LOG_SEV(m_DbLogger,severity_level::info)我可以生成日志文件,但只能在exe所在的位置生成。如果我给出的路径不是exe路径,我就无法创建日志文件。我是否需要添加任何宏或其他东西来在我的exe所在的位置以外的其他位置创建日志文件。你必须添加一个可以生成的简单代码段。我可以生成日志文件,但只能在我的exe所在的位置生成日志文件。如果我给出的路径不是exe路径,我就无法创建日志文件。我是否需要添加任何宏或其他东西来在exe所在的其他位置创建日志文件。你必须添加一个可以生成的简单代码段