分享一个简易的程序日志记录C++类

博主在忙碌的项目开发中找到了时间进行总结,计划分享一系列学习心得。本文首先介绍了一个基于《一个简单又高效的日志系统》并经过修改和补充的简易程序日志记录C++类,适合初学者参考。
摘要由CSDN通过智能技术生成

最近一直在忙实验室的项目开发,很少上博客了,现在总算有一定时间空出来做些总结,今天起陆续更新博客,总结一下半年多来的学习心得。

今天先分享一个简易的程序日志记录类,参考自《一个简单又高效的日志系统》,针对项目本身做了一定的修改和补充,编程水平有限,仅供参考,呵呵 。

头文件:

#ifndef _INFO_LOGGER_H_
#define _INFO_LOGGER_H_

/********************************************************************
 *	created:	8/7/2012   13:41
 *	filename: 	CinfoLogger.h
 *	author:		ZouYuhua @ BUAA
 *	
 *	purpose:	这是一个简易的程序运行日志记录类
 *				主要功能是 
 *				1. 将带参数的格式化字符串写入日志缓存字符串
 *				2. 当缓存字符串长度大于阈值 或者 定时时间到 时,将缓存写入到本地log文件
 *				3. 将带参数的格式化字符串转换为 std::string 字符串
 *				4. 将当前系统时间转换为指定格式的字符串
 *				5. 获取高精度(微秒级)的系统时间
 *				
 *	sample:		使用示例
 *	
 *	 // 包含头文件,可以放在 stdafx.h 中
 *	 
 *	 #include "CinfoLogger.h"

 *	 #define	WRITE_LOG			CinfoLogger::instance()->LogInfo			
 *	 #define	STRING_FORMAT		CinfoLogger::instance()->LogInfo
 *	 #define	ENTER_FUNC			CinfoLogger::instance()->EnterFunction
 *	 #define	LEAVE_FUNC			CinfoLogger::instance()->LeaveFunction
 *	 #define	GET_TIME_STRING		CinfoLogger::instance()->GetCurTimeToString
 *	 #define	GET_TIME_ELAPSED	CinfoLogger::instance()->GetTimeElapsed
 *	 #define	GET_TIME_NOW		CinfoLogger::instance()->GetSystemTimerCount()

 *	 #define	LOG_LEVEL_FORMAT	-1
 *	 #define	LOG_LEVEL_MAIN		0
 *	 #define	LOG_LEVEL_SUB_1		1
 *	 #define	LOG_LEVEL_SUB_2		2
 *	 #define	LOG_LEVEL_SUB_3		3
 *
 *	 //具体调用方式
 *	 
 *	 //1.写入日志
 *	 WRITE_LOG(LOG_LEVEL_MAIN, "正在获取数据。");
 *	 WRITE_LOG(LOG_LEVEL_SUB_1, "The value is %d", value);
 *	 cout << WRITE_LOG(LOG_LEVEL_MAIN, "写入日志缓存,并在控制台窗口显示信息。") << endl;
 *	 	 
 *	 //2.格式化字符串转换
 *	 std::string info = "The ";
 *	 info += STRING_FORMAT(LOG_LEVEL_FORMAT, "value is %d", value);
 *	 
 *	 //3.将当前时间转换为字符串,作为文件名的一部分
 *	 std::string imgFileName = "img_" + GET_TIME_STRING() + ".jpg";
 *	 
 *	 //4.程序运行时间计时
 *	 LONGLONG t_start = GET_TIME_NOW;
 *	 // do something ...
 *	 double t_elapsed = GET_TIME_ELAPSED( t_start );
 *	 WRITE_LOG(LOG_LEVEL_MAIN, "[Main Process] 用时: %.3f ms", t_elapsed);
 *				
 *	 //5.记录函数进出事件
 *	 function func
 *	 {
 *		ENTER_FUNC("func");
 *		...
 *		LEAVE_FUNC("func");
 *	 }
 ********************************************************************/


#pragma once

//-------------------------------------------------------------------------
// Includes
//-------------------------------------------------------------------------

/***
 * 在 stdafx.h 还包含了其它的头文件,也可能在本类中用到
 * 

#include "targetver.h"

#include <stdio.h>
#include <tchar.h>

// TODO: 在此处引用程序需要的其他头文件
#include <Windows.h>
#include <iostream>
#include <vector>
#include
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值