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所在的其他位置创建日志文件。你必须添加一个可以生成的简单代码段