spdlog知识点
1.日志级别决定了哪些日志消息会被输出。低于设置级别的日志消息将被忽略。
日志级别从低到高依次为:
trace:最低级别,用于记录非常详细的调试信息。
debug:用于记录调试信息。
info:用于记录常规信息。
warn:用于记录警告信息。
error:用于记录错误信息。
critical:最高级别,用于记录严重错误信息。
默认的日志级别是 info
例子:
spdlog::set_level(spdlog::level::debug);
2.日志目标(Sink)是日志消息的输出目的地。
spdlog 支持多种日志目标,例如控制台、文件、系统日志等。你可以根据需求将日志消息输出到一个或多个目标。
如何设置日志目标
spdlog 的日志目标通过 Sink 来实现。
以下是设置日志目标的基本步骤:
创建 Sink:使用 spdlog 提供的 Sink 类创建日志目标。
创建 Logger:将 Sink 添加到 Logger 中。
使用 Logger:通过 Logger 记录日志消息。
例子:
auto file_sink = std::make_shared<spdlog::sinks::basic_file_sink_mt>("logs/log.txt"); //相对路径,上级目录是当前工作目录。
auto logger = std::make_shared<spdlog::logger>("file_logger", file_sink);
logger->info("This is a file log message");
3.spdlog 在大多数情况下是自动释放资源的,因为它基于 RAII(Resource Acquisition Is Initialization)原则设计。
具体来说,spdlog 的日志对象(logger)和日志目标(sink)在超出作用域时会自动销毁并释放相关资源。
然而,在某些情况下,你可能需要手动管理资源。
理解了以上三个内容就可以使用spdlog了,确实容易!
注意:
1.spdlog下载难;
2.当前版本(1.15.1)似乎必须使用utf-8编码