C++ |日志 |如何让 sinc 具有不同的格式化程序?

C++ | spdlog | How to have sincs with different formatters?

我正在使用 spdlog 库进行 C++ 日志记录。我有一个同时包含 stdoutrotating_file_sink_mt sincs 的记录器:

    auto std_out_sinc = std::make_shared<spdlog::sinks::stdout_sink_mt>();
    auto file_sinc = std::make_shared<spdlog::sinks::rotating_file_sink_mt>("1.log");
    sinks.push_back(std_out_sinc);
    sinks.push_back(file_sync);
    auto combined_logger = std::make_shared<spdlog::logger>("root", begin(sinks), end(sinks));

我想为不同的 sinc 使用不同的日志格式。例如,stdout 的非常简单的格式(默认)和基于文件的 sinc 的 json 格式(由日志索引服务解析)。这在 spdlog 中可能吗?

spdlog 分支 v1.x 支持(尚未正式发布,但您可以尝试一下)。