写代码总免不了要看日志。就C++而言,不少程序员只是简单地用printf来输出日志,或者临时写个日志类,log4cpp等比较“重型”的日志库的使用率反而并不怎么高(至少从我经历的项目而言)。也许是不想为不需要的功能付出额外的学习成本,但无论如何,对于通用类别的工具采取临时手写的方式来应付,从长远考虑,在功能性和健壮性方面是得不偿失的。写这个日志类(yaolog)的最初的想法只是为了实现“输出到文件的带有时间信息的printf”,后来历经不同项目需求的“拷问”,借鉴和引用了很多开源代码(在此对那些作者表示感谢),就成了现在这个样子。yaolog的主要特点如下:
# printf风格的接口,包括LOGA__, LOGW__, LOG__, LOGBIN__, LOGBIN_F__# 日志附加信息包括时间,源代码文件,函数,行号
# 每个日志对象都有单独的行为
# 在程序运行时通过配置ini文件动态改变日志行为
# 可以输出到控制台窗口,文件,http服务器
# 线程安全
# 跨平台(windows, linux)
v1.6新加功能:
1 可以输出格式化的二进制日志(见上图),非常方便对socket通信之类进行deb