提升日志不写入文件,怎么办?
Boost log doesn't write to file, how to?
下面是我的代码:
#include <boost/log/trivial.hpp>
#include <boost/move/utility.hpp>
#include <boost/log/sources/logger.hpp>
#include <boost/log/sources/record_ostream.hpp>
#include <boost/log/sources/global_logger_storage.hpp>
#include <boost/log/utility/setup/file.hpp>
#include <boost/log/utility/setup/common_attributes.hpp>
namespace logging = boost::log;
namespace src = boost::log::sources;
namespace keywords = boost::log::keywords;
BOOST_LOG_INLINE_GLOBAL_LOGGER_DEFAULT(my_logger, src::logger_mt)
void Foo::Some()
{
std::cout << "TEST";
src::logger_mt& lg = my_logger::get();
logging::add_file_log("F:\sample.log");
//logging::core::get()->set_filter
// (
// logging::trivial::severity >= logging::trivial::info
// );
logging::add_common_attributes();
BOOST_LOG(lg) << "Greetings from the global logger!";
它取自boost教程,但它不会写入文件,也不会显示任何错误信息
教程在这里:http://www.boost.org/doc/libs/master/libs/log/example/doc/tutorial_file.cpp
我做错了什么?
它没有行:logging::add_file_log("F:\sample.log");
,但我正在尝试不同的文件位置,它不写任何
问题是您的日志记录器没有严重性属性。它不会在日志记录中产生严重性值,因此您设置的过滤器总是拒绝记录。
在您链接的文档示例中,您可以看到severity_logger
和BOOST_LOG_SEV
用于日志记录(请参阅此处的文档)。severity_logger
日志记录器具有模板参数中指定的类型的严重性属性,BOOST_LOG_SEV
宏为每条日志记录提供严重性值。注意,属性值的类型(严重性级别)必须匹配过滤器和格式化程序(如果安装了的话)。您设置的过滤器中的logging::trivial::severity
关键字意味着严重性级别的类型应该是boost::log::trivial::severity_level
。
当考虑转义序列时,文件路径"F:sample.log"
可能等同于"F:sample.log"
。(这是实现定义的,根据N3337 2.14.3字符字面量):
在Windows的文件名中不可用。
你是说"F:\sample.log"
吗?
相关文章:
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 文本文件中的单词链表
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用新行和不使用新行读取文件
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 挂起和取消挂起一个文件DLL
- 如何确定我已使用非编码文件到达 EOF?
- 命名空间中具有.h和.cpp文件的类
- 如何使用ndk-build.cmd构建Android.so文件
- 从包含m行的文件中提取n行,必要时(惰性地)重复该文件
- 读取文件并输入到矢量中
- 在C++中查找文件
- c++库的公共头文件中应该包含什么
- 用c++从输入文件中读取另一行
- Cppcheck生成xml转储文件
- 读取文件的最后一行并输入到链接列表时出错
- 我需要通过窗口句柄(HWND)获取文件,我该怎么办?
- 如果变量在 .h 文件中定义为"static "怎么办?
- 提升日志不写入文件,怎么办?