Easylog:一个仅需要头文件不需要C++ 11的日志系统
Easylog:支持非C++11,支持日志级别,支持流式日志,支持printf,不需要定义,只需要包含头文件
地址:Easylog_Github
请帮忙点一个Star,谢谢~
工作中有的时候需要一个日志系统来做一下记录,之前在网上找了很多开源的日志,要么太过简单,要么配置过于繁琐了,后来在网上找到了下面两位大神写的日志头文件:
https://gitee.com/sollyu/EasyLog : c++ 11 only
https://github.com/ysbbswork/Minilogger
由于第一位作者的只支持C++ 11,第二个作者的相对比较简单,所以我就把两者结合了一下,并且针对Easylog进行了一定的功能上的增加。例如可选追加写与覆盖写、可选是否打印日志、可选使用日期作为文件名等。
具体的代码思路就是定义一个类,里面采用写文本的方式,思路就是定义一个日志类,采用宏封装类的函数。
调用极为简单:
#include <iostream>
#include "Easylog.h"
ELOGI("i'm %s", "zhushuo"); // 输出 INFO (只有 LOGI 不会打印所在行)
ELOGE("I'm " << "sollyu"); // 输出 ERROR (会打印所在行)
ELOG_DEBUG("i'm %s", "sollyu"); // 输出 DEBUG (会打印所在行)
EasyLog::GetInstance()->WriteLog(EasyLog::LOG_DEBUG, "i'm %s", "sollyu");
使用方式有多种,但是包含头文件,然后直接调用宏最为方便。执行后结果如下:
[2018.12.09] [19:48:41] [LOG_INFO ] ------------------ LOG SYSTEM START ------------------
[2018.12.09] [19:48:41] [LOG_INFO ] i’m zhushuo
[2018.12.09] [19:48:41] [LOG_ERROR] I’m sollyu (…\src\Easylog.cpp : main : 16 )
[2018.12.09] [19:48:41] [LOG_DEBUG] i’m sollyu (…\src\Easylog.cpp : main : 17 )
[2018.12.09] [19:48:41] [LOG_DEBUG] i’m sollyu