提升日志更改默认日志记录::核心格式化程序
Boost Log changing the default logging::core formatter?
我正在使用 Boost v1.54,我想简单地更改 logging::core 的默认接收器格式,但还没有找到这样做的方法。在日志记录格式文档中,它们仅显示如何更改自定义接收器(例如文件.log而不是默认接收器的格式?有没有办法在提升日志中全局设置默认格式?
这是他们所做的:
void init()
{
logging::add_file_log
(
keywords::file_name = "sample_%N.log",
keywords::rotation_size = 10 * 1024 * 1024,
keywords::time_based_rotation = sinks::file::rotation_at_time_point(0, 0, 0),
keywords::format = "[%TimeStamp%]: %Message%"
);
logging::core::get()->set_filter
(
logging::trivial::severity >= logging::trivial::info
);
}
这就是我想要的:
void init()
{
logging::core::get()->set_default_format("[%TimeStamp%]: %Message%");
logging::core::get()->set_filter
(
logging::trivial::severity >= logging::trivial::info
);
}
不知道你为什么要这样做,因为没有什么大事可以得到。这是不可能的,但有原因。
如果你在boost_1_54_0/boost/log/core/core.hpp下查看,它不允许设置除属性之外的任何内容 - 这本身就是一个很棒的功能。
返回时,一个接收器可以同时具有多种类型的流。
- 基于文本文件
- 基于控制台
- 或两者兼而有之(如果要写入一次,输出转到文本文件和控制台)
对于核心,您可能只有一个接收器,您可以在其上添加任意数量的流。流可能根据您的要求而变化。但是格式将应用于接收器 - 所有流。
因此,以下是您如何看待这种关系:
- 一个核心 --> 一个接收器(带格式) -->多个流
发布一次,它将以您应用的格式转到所有流。
来自同一链接的一个小例子。
此外,还有一些使用多个流的示例代码。
shared_ptr< std::ostream > strm(new std::ofstream("test.log"));
mSink->locked_backend()->add_stream(strm);
shared_ptr< std::ostream > pStream(&std::clog, logging::empty_deleter());
mSink->locked_backend()->add_stream(pStream);
mSink->set_formatter
(
expr::format("%1%:[%2%] %3%")
% expr::attr< boost::posix_time::ptime >("TimeStamp")
//% expr::attr< boost::thread::id >("ThreadID")
% expr::smessage
);
相关文章:
- Log4net,将日志消息从 c++ dll 发送到 c# 应用程序?
- 可视化如何在我的C++程序中最好地使用相同的Boost日志
- 程序由于日志而阻塞
- BOOST ::日志是每次运行应用程序时都可能旋转文件
- Mac OS X:应用程序可以创建日志文件
- C :如何使用log4cplus的套接字应用程序将日志发送到Logstash服务器
- 我无法弄清楚我的程序的问题,即使我已经查看了错误日志消息
- 多线程应用程序中的独立日志记录
- 如何正确退出使用提升日志的程序
- 当程序遇到故障时,如何在信号处理函数中写入日志和上传日志到MYSQL
- 如何从Windows XP下的程序中知道或更改Windows事件日志的大小
- 应用程序崩溃 C++/MFC 的通用日志
- 这是C ++程序领域中最流行的开源日志记录软件/程序
- 该程序不会在任何地方打印系统日志?
- 如何将我的应用程序生成的标准 Mac OS X 日志输出重定向到文件
- 如何使用Qt Windows中的设置路径属性从命令行运行应用程序(.exe)时在命令行上打印日志
- 将我的应用程序与黑莓10中的呼叫日志核心应用程序集成
- 在c++中实现最小日志程序
- 日志程序在一个单独的c++线程中
- 多个日志程序写入一个文件