多文件后端和严重性
multi-file backend and severity
我将提升日志配置为具有多个日志文件,但严重性级别有问题。我不能在日志中打印这个。
enum severity_level
{
error = 0,
critical = 1,
info = 2,
warning = 3,
debug = 4,
trace = 5
};
BOOST_LOG_INLINE_GLOBAL_LOGGER_DEFAULT(my_logger, boost::log::sources::logger_mt);
BOOST_LOG_ATTRIBUTE_KEYWORD(severity, "Severity", severity_level);
std::ostream& operator<< (std::ostream& strm, severity_level level)
{
static const char* severity_name[] = {
"ERR",
"CRI",
"INF",
"WAR",
"DEB",
"TRA"
};
if (static_cast< std::size_t >(level) < sizeof(severity_name) / sizeof(*severity_name))
strm << severity_name[level];
else
strm << static_cast< int >(level);
return strm;
}
void log_init()
{
// Create a text file sink
typedef boost::log::sinks::synchronous_sink< boost::log::sinks::text_multifile_backend > file_sink;
boost::shared_ptr< file_sink > sink(new file_sink);
// Set up how the file names will be generated
sink->locked_backend()->set_file_name_composer(boost::log::sinks::file::as_file_name_composer(
boost::log::expressions::stream << "logs/" << boost::log::expressions::attr< std::string >("logger_name") << ".log"));
// Set the log record formatter
sink->set_formatter
(
boost::log::expressions::format("%1%: [%2%] - %3%")
% boost::log::expressions::attr<severity_level>("Severity")
% boost::log::expressions::attr< boost::posix_time::ptime >("TimeStamp")
% boost::log::expressions::smessage
);
// Add it to the core
boost::log::core::get()->add_sink(sink);
// Add some attributes
boost::log::core::get()->add_global_attribute("TimeStamp", boost::log::attributes::local_clock());
boost::log::core::get()->add_global_attribute("RecordID", boost::log::attributes::counter< unsigned int >());
}
但当我尝试打印日志时,日志文件中并没有严重性。
BOOST_LOG_SEV(my_logger::get(), severity_level::info)<<"some text logged";
: [2013-Aug-13 11:07:18.280748] - some text logged
我做错了什么?
BOOST_LOG_INLINE_GLOBAL_LOGGER_DEFAULT(my_logger, boost::log::sources::logger_mt);
应该改为
BOOST_LOG_INLINE_GLOBAL_LOGGER_DEFAULT(my_logger, boost::log::sources::severity_logger_mt<severity_level>);
附言:BOOST日志糟糕。配置非常复杂(我还没有正确配置它)。你知道容易使用的日志库吗?我需要将日志写入不同的文件、严重级别和轮换大小。
相关文章:
- ArrayFire中统一后端的使用
- 有没有办法知道Tracer是否成功地完全连接到了jaegerclientcpp中的jaeger后端服务器
- 如何在 LLVM 后端的机器级别找到 def-use 链
- 如何在 boost::msm 中实现可以访问状态机 (SM) 的后端/前端的"BaseState"
- 在单链表中的后端插入节点
- CUDA(GPU)作为OpenCV后端
- 如何将C 中的后端写入与TCL/TCK用户界面连接
- 在同一应用程序中,可以将C 用作后端和Javafx
- 是否可以使用 c++ 作为 Electron.js 的后端
- 我如何将 c++ 中的向量序列化为 char,以便于将 mondodb 用于后端
- 当后端响应需要很长时间时,WXWIDGET应用程序会挂起
- Boost ::使用与多个水槽的同一后端使用相同的后端安全性
- 从Web前端发送请求到C 后端
- 无法使用CPU后端使用TensorFlow AOT编译创建最终二进制文件
- Skia中的非均匀文本缩放(Freetype 2后端)
- 带有C 类的Electron Nodejs在后端
- 用于C++后端服务的 Web 界面
- 在不减慢主应用程序速度的情况下在后端运行成员函数的技巧是什么
- 在Boost Meta状态机的后端访问前端
- 多文件后端和严重性