如何转义 spdlog 消息?
How to escape spdlog message?
我正在使用 spdlog 记录所有消息。我的日志模式是 JSON 格式。我在所有日志调用中手动转义消息。有什么方法可以在 spdlog 层自动转义消息吗?
手动转义示例:
spdlog::info(escape_message(data));
应该在spdlog层内部自动处理:
spdlog::info(data);
我找到了解决方法。
我应该实现自定义 formatter
class 然后在 format
方法中,我通过例如 escape_message(msg.payload.data())
转义消息然后调用 spdlog::log(msg.source, msg.level, escape_message(msg.payload.data()))
, spdlog::info
或 ... 在此方法内。
注意:在format
方法中我设置了一个日志模式,因为在class之外,如果我调用set_formatter
,然后调用 set_pattern
,效果不佳。
告诉 spdlog 格式化单个字符串,而不是将字符串本身解释为格式字符串:
spdlog::info("{}", data);
我正在使用 spdlog 记录所有消息。我的日志模式是 JSON 格式。我在所有日志调用中手动转义消息。有什么方法可以在 spdlog 层自动转义消息吗?
手动转义示例:
spdlog::info(escape_message(data));
应该在spdlog层内部自动处理:
spdlog::info(data);
我找到了解决方法。
我应该实现自定义 formatter
class 然后在 format
方法中,我通过例如 escape_message(msg.payload.data())
转义消息然后调用 spdlog::log(msg.source, msg.level, escape_message(msg.payload.data()))
, spdlog::info
或 ... 在此方法内。
注意:在format
方法中我设置了一个日志模式,因为在class之外,如果我调用set_formatter
,然后调用 set_pattern
,效果不佳。
告诉 spdlog 格式化单个字符串,而不是将字符串本身解释为格式字符串:
spdlog::info("{}", data);