[英]How to escape spdlog message?
我正在使用 spdlog 記錄所有消息。 我的日志模式是 JSON 格式。 我在所有日志調用中手動發送 escaping 消息。 有沒有辦法在 spdlog 層自動轉義消息?
手動 escaping 示例:
spdlog::info(escape_message(data));
它應該在 spdlog 層內自動處理:
spdlog::info(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
,則效果不佳。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.