本文主要是介绍muduo 日志打印改造,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
改造前是这样的:
改造后是这样的:
时间戳改成本地的了,线程id 改成了[线程id],函数名称放到最后。看一下这个打印日志宏:
#define LOG_TRACE if (muduo::Logger::logLevel() <= muduo::Logger::TRACE) \
muduo::Logger(__FILE__, __LINE__, muduo::Logger::TRACE, __func__).stream()
在上一篇 这里 讲过,这里创建一个匿名对象。调用的构造函数是这个版本的:
而在初始化列表里就调用了成员 impl_的构造函数,看一下其构造函数内容:
所以当调用完 Logger 的构造函数,impl_ 里已经有了日期时间、线程id、打印等级这些字符串了, 然后在执行完LOG_TRACE 后匿名对象被销毁,所以要调用 Logger 的析构函数:
在 Impl 对象的 finish() 函数里,把文件名、行号、函数名加上,最后输出到stdout。
这篇关于muduo 日志打印改造的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!