簡體   English   中英

如何轉義 spdlog 消息?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM