⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 log.h

📁 试某些程序的时候需要一个轻量级的日志文件作记录
💻 H
字号:

//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>

class CLog
{
	CLog()
	{	
		pf= new ofstream ("dbg_log.log" /*, ios::app */);
	}

	static CLog* _instance;
	ofstream* pf;
public:
	~CLog()
	{
		_instance=0;		
		pf->close();
	}

	static CLog* GetPtr()
	{
		if(!_instance)
			_instance=new CLog;
		return(_instance);
	}

	static CLog& GetObj()
	{
		if(!_instance)
			_instance=new CLog;
		return(*_instance);
	}

	template<class T> inline CLog& Write(T val)
	{
		(*pf) << val ;
		pf->flush(); 
		return *this;
	}
	
	template<class T> inline CLog& tmWrite(T val)
	{
		time_t ltime;
		time( &ltime );
		(*pf) << "---  "<< ctime( &ltime ) << val ;
		pf->flush(); 
		return *this;
	}

	template<class T> inline CLog& operator<< (T val)
	{
		(*pf) << val ;
		pf->flush(); 
		return *this;
	}

};

#endif
//end of file

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -