该logger模块是一种本地缓存形式的logger处理方法:用于相关软件开发过程中的日志记录;适用于windows和linux
Linux下的主要使用的是syslog-ng库,以下贴出源码,详情请下载开发包。
logger.h
-----------------------------------------------------------------------------------------------------------------------------
/*
* logger.h
* Author: ws
* Data: 2015-12-24
*/
#ifndef WS_LOGGER_H_
#define WS_LOGGER_H_
#include <cstdlib>
#include <cstdio>
#include <string>
//------------------------------------------------------------------------
// 日志系统
// 根据不同的系统使用不同的库
// 若是windows系统使用宏#define WIN32
// 若是linux系统中旧的log日志系统,使用宏#define L_LOG_OLD
// 若是linux系统中的syslog-ng日志系统(需要单独安装及配置),使用宏#define L_LOG_NG
//------------------------------------------------------------------------
//#define WIN32 // 表示使用的是windows系统
//#define L_LOG_OLD // 表示使用的是linux旧的syslog库
#define L_LOG_NG // 表示使用的是linux新的syslog-ng库,syslog的升级版
//-----------------------------------------------------------------------
// 声明部分
//-----------------------------------------------------------------------
# define MAXLOGLINE1024
#ifdef WIN32 // windows
//#define FOLDER_PATH // 表示日志地址是使用系统路径
#define MODEL_PATH // 表示日志地址是进程所在的文件路径
#include <fstream>
#include <shlwapi.h>
enum LogLevel {
Fatal = 0,//0 最高级,致命的
Alert = 1,//1 最高级,必须采取措施
Crit = 2,//2 最高级,临界状态
Error = 3,//3 高级,错误
Warn = 4,//4 高级,警告
Notice = 5, //5 高级,正常但重要
Info = 6,//6 高级,一般信息
Debug = 7,//7 一般,调试信息
};
#else // "Linux syslog"(L_LOG_OLD) Or "linux syslog-ng"(L_LOG_NG)
#include <syslog.h>
enum LogLevel {
Fatal = LOG_EMERG,//0 最高级,致命的
Alert = LOG_ALERT,//1 最高级,必须采取措施
Crit = LOG_CRIT,//2 最高级,临界状态
Error = LOG_ERR,//3 高级,错误
Warn = LOG_WARNING,//4 高级,警告
Notice = LOG_NOTICE, //5 高级,正常但重要
Info = LOG_INFO,//6 高级,一般信