C++实现简易log日志系统
在软件开发周期中,不管是前台还是后台,系统一般会采用一个持久化的日志系统来记录运行情况。
在代码中嵌入log代码信息,主要记录下列信息:
(1)记录系统运行异常信息。
(2)记录系统运行状态信息。
(3)记录系统运行性能指标。
通过对上述信息分析和诊断,我们能采取正确的手段来提高系统质量和系统性能。由此可见log日志在系统中的重要地位和存在的必要性。
主要分三大类:
安全类信息:记录系统边界交互行为和信息;
业务类信息:记录系统内部业务处理行为和信息 ;
性能类信息:记录系统硬件对业务处理的支撑能力。
一般分五级:
ERROR(错误):此信息输出后,主体系统核心模块不能正常工作,需要修复才能正常工作。
WARN(警告):此信息输出后,系统一般模块存在问题,不影响系统运行。
INFO(通知):此信息输出后,主要是记录系统运行状态等关联信息。
DEBUG(调试):最细粒度的输出,除却上面各种情况后,你希望输出的相关信息,都可以在这里输出。
TRACE(跟踪):最细粒度的输出,除却上面各种情况后,你希望输出的相关信息,都可以在这里输出。
在本文实现的简单日志系统中不包括DEBUG和TRACE。DEBUG在编码过程中进行,TRACE不太需要。
C/C++实现的开源log常见有:C++版的log4j 的log4cplus、快速的 C++ 日志库——spdlog、纯C日志函数库 ——zlog、C++日志框架——Google Glog等。
其中开源log工具log4cplus在项目中的使用较为常见,具体用法和源码请参考网络的资源,不再赘述。
主要针对ERROR(错误)、WARN(警告)和INFO(通知)这三种日志类型实现了如下的C++简易log工具。由源文件()和头文件()组成。源码如下。
:
/*
* \
* \brief 日记模块
*/
#ifndef __logger__
#define __logger__
#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
#include <cstdlib>
#include <>
///
/// \brief 日志文件的类型
///
typedef enum log_rank {
INFO,
WARNING,
ERROR,
FATAL
}log_rank_t;
///
/// \brief 初始化日志文件
/// \param info_log_filename 信息文件的名字
/// \param warn_log_filename 警告文件的名字
/// \param error_log_filename 错误文件的名字
void initLogger
C 实现简易log日志子系统 来自淘豆网www.taodocs.com转载请标明出处.