【日志工具】g3log_5_自定义log格式

自定义日志格式

重载默认文件接收器的文件头

默认文件头可以在默认文件接收器中自定义:

   FileSink::overrideLogHeader(std::string);

重载默认文件接收器的日志格式

默认的日志格式是在LogMessage.hpp

   static std::string DefaultLogDetailsToString(const LogMessage& msg);

在日志格式中添加线程ID

An “all details” log formatting function is also defined - this one also adds the “calling thread’s ID”

   static std::string FullLogDetailsToString(const LogMessage& msg);

重载默认Sink日志格式

为了方便重载默认Sink有一个函数可以实现

  void overrideLogDetails(LogMessage::LogDetailsFunc func);

将默认日志格式替换为“完整详细信息”格式的示例代码(添加线程ID

   auto worker = g3::LogWorker::createLogWorker();
   auto handle= worker->addDefaultLogger(argv[0], path_to_log_file);
   g3::initializeLogging(worker.get());
   handle->call(&g3::FileSink::overrideLogDetails, &LogMessage::FullLogDetailsToString);

查阅test_message.cpp获取更多细节和测试

重载自定义接收器的格式设置的示例代码,日志格式化函数将被传递到LogMessage::toString(...),覆盖掉默认的日志格式

示例

namespace {
      std::string MyCustomFormatting(const LogMessage& msg) {
        ... how you want it ...
      }
    }

   void MyCustomSink::ReceiveLogEntry(LogMessageMover message) {
      std::string formatted = message.get().toString(&MyCustomFormatting) << std::flush;
   }
...
...
 auto worker = g3::LogWorker::createLogWorker();
 auto sinkHandle = worker->addSink(std::make_unique<MyCustomSink>(),
                                     &MyCustomSink::ReceiveLogMessage);
 // ReceiveLogMessage(...) will used the custom formatting function "MyCustomFormatting(...)
    

黎明就在眼前

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泡泡吐泡泡啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值