对轻量级C++日志类的增强
来源:互联网 发布:php location.href 编辑:程序博客网 时间:2024/05/22 17:02
对轻量级C++日志类的增强
这是网上找到的一个轻量级C++日志类的实现,主要应用了Singleton模式,我增加一个函数tmWrite,主要用来进行前面带时间的行输出。
//log.h
//hujinshan@2004.1.3 Airforce Engineering University
/*
//CLog* CLog::_instance = NULL;
CLog::GetObj().Write( "******* 初始化完成 *******" ) <<endl;
CLog::GetObj().tmWrite( "******* 开始渲染No1. *******" ) <<endl ;
CLog::GetObj()<< "******* 注销钩子 *******" <<endl;
在Clog文件中有 #define CLog /##/ 的语句,
这是为了使日志在release版无效,
使用单行注释,所以如果调用时如果要换行,
请务必在换行最后加上 / 符号,
*/
/*#ifndef _DEBUG
#define CLog /##/
#define _CLOG_H
#endif*/
#ifndef _CLOG_H
#define _CLOG_H
#pragma once
#include <fstream.h>
#include <ctime>
classCLog
{
CLog()
{
pf= newofstream ("inmstrace.log", ios::app);
}
static CLog* _instance;
ofstream* pf;
public:
~CLog()
{
_instance=0;
pf->close();
}
static CLog* GetPtr()
{
if(!_instance)
_instance=newCLog;
return(_instance);
}
static CLog& GetObj()
{
if(!_instance)
_instance=newCLog;
return(*_instance);
}
template<classT> inline CLog& Write(Tval)
{
(*pf) << val ;
pf->flush();
return *this;
}
template<classT> inline CLog& tmWrite(Tval)
{
charstrBuf[50];
time_tltime;
time( <ime );
struct tm *today = localtime( <ime );
sprintf(strBuf, "%4d-%2.2d-%2.2d %2.2d:%2.2d:%2.2d ",
today->tm_year+1900, today->tm_mon+1, today->tm_mday, today->tm_hour,
today->tm_min, today->tm_sec);
(*pf) << strBuf << val << "/r/n";
pf->flush();
return *this;
}
template<classT> inline CLog& operator<< (Tval)
{
(*pf) << val ;
pf->flush();
return *this;
}
};
#endif
//end of file
转自:http://blog.csdn.net/stephenxu111/archive/2008/05/13/2442825.aspx
- 对轻量级C++日志类的增强
- 对轻量级C++日志类的增强
- c++对c的增强
- C++对C的增强
- C++对C的增强
- C++对C的增强
- C++对C的增强
- C++对C的增强
- C++对C的增强
- C++对C语言语法的增强
- C++对C的实用性增强
- C++对C语言register的增强
- C++ 对C语言的增强
- 对C语言register的增强
- 05-C++对C的增强
- c++对c语言上的增强
- c++对c对增强实用性”增强
- 轻量级日志类Log
- DB design log (5)
- 用完成端口开发大响应规模的Winsock应用程序
- application.xml "org.apache.commons.dbcp.BasicDataSource] not found "
- Oracle用户
- WrapperDemo.java
- 对轻量级C++日志类的增强
- C++ 使用心得
- 直接修改内核对象隐藏进程
- CSS 进度条(含进度)
- 谈谈对于SSDT中的API进行双层HOOK的通用处理模式
- 各种数据库的ado连接字符串
- jspSmartUpload上传下载全攻略(转载)
- [转] Mosix:强大的集群Linux方案
- ACE网管平台移植Linux