就像
myLogger("who are you?", "I'm ZRH", "I'm in thread:", std::this_thread::get_id());
myLogger(1, "+", 2u, "=", "3");
多个thread输出形如:
2016-04-16 10:54:54 who are you? I'm ZRH I'm in thread: 6736
2016-04-16 10:54:54 1 + 2 = 3
2016-04-16 10:54:54 who are you? I'm ZRH I'm in thread: 13528
2016-04-16 10:54:54 1 + 2 = 3
2016-04-16 10:54:54 who are you? I'm ZRH I'm in thread: 3036
2016-04-16 10:54:54 1 + 2 = 3
用到了
-
括号 操作符重载
-
C++11 chrono, iomanip 获取和格式化输出时间戳;
-
C++11 lock_guard, 保证一条log记录是线程安全的;
-
C++11 variadic template, 这样就可以做到随意的参数个数和参数类型(当然,要保证参数的可打印,比如有 << 操作符实现);
-
C++11 list initialization, braced-init-list, 列表初始化的形式顺序打印log,这比递归实现好多了;
原文链接: https://www.cnblogs.com/rhzhang/p/5397913.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/231990
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!