无法在Boost.log中设置控制台日志的格式
Cannot set format of console log in Boost.Log
我正在尝试将boost.log设置到我的项目中。我已经遵循了示例,但当我尝试设置格式时,编译器会说该格式是只读引用。
void init() {
logging::add_console_log(
std::cout,
// Compiler says "const boost::parameter::keyword<keywords::tag::format>& is read-only reference".
keywords::format = "%Timestamp% %Message%",
keywords::severity = info
);
logging::add_common_attributes();
}
我的猜测是您遇到了一个编译器错误。format
关键字和Boost.Parameter中用BOOST_PARAMETER_KEYWORD
声明的任何其他关键字一样,实际上是一个常量引用。但是,boost::parameter::keyword
中有一个const限定的赋值运算符,应该由编译器选择。
作为一种变通方法,您可以尝试将关键字替换为对get
静态函数的调用,如下所示:
// Replace this:
keywords::format = "%Timestamp% %Message%"
// with this:
boost::parameter::keyword<keywords::tag::format>::get() = "%Timestamp% %Message%"
此外,请注意,属性名称区分大小写,add_common_attributes
函数添加了一个"TimeStamp"属性,而不是"TimeStamp"(请注意大写字母S)。
相关文章:
- C++:将控制台输出存储在宏中更好吗
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- SSH通过/sbin/SSH无法读取RSA密钥文件(从控制台运行)
- EvtExportLogneneneba API正在将远程计算机的事件日志保存到远程PC本身.如何将其保存到主机
- C++控制台应用程序阻止退出
- 如何修复此iFile以将.txt输出到控制台
- 为什么控制台要求输入,即使代码中没有输入
- 在Qt Creator中,如何在连接到正在运行的进程后查看控制台输出
- C++同时记录到控制台和日志文件
- C 构建控制台服务器日志 命令
- 将第三方模块的控制台输出/错误重定向到日志文件
- 无法在Boost.log中设置控制台日志的格式
- Jenkins:在控制台日志上使用 cpplint 解析器的异常(警告插件)
- Qt 隐藏控制台窗口停止写入日志文件
- 为什么日志输出显示在控制台主机中,而不显示在ISE中?(v4.0)
- 如何在Metro应用程序中用C++在Visual Studio 11中打印到控制台/日志
- c++ GTK控制台日志功能错误
- 如何通过JNI/NDK获得Android应用中使用的c++库的日志行(printf, cout等)的控制台输出
- 如何添加颜色编码到提升::日志控制台输出
- 自定义C++ cout 类 - 输出到控制台和日志文件