C++ 简单的日志类

来源:互联网 发布:获取json的key和value 编辑:程序博客网 时间:2024/05/18 00:56
/*简单的日志记录类. (日志而已,何必那么复杂!!!)W.J.Chang 2013.12.13说明:(EasyLog.h)1, 简单的单件实现(自动垃圾回收)2, 使用方法:EasyLog::Inst()->Log("Run...");3, 日志记录结果:Run...[2013.12.13 16:38:42 Friday]*/#pragma once#ifndef EASY_LOG_H_8080#define EASY_LOG_H_8080#include <memory>#include <ctime>#include <iostream>#include <fstream>class EasyLog{public:static EasyLog * Inst(){if (0 == _instance.get()){_instance.reset(new EasyLog);}return _instance.get();}void Log(std::string msg); // 写日志的方法private:EasyLog(void){}virtual ~EasyLog(void){}friend class std::auto_ptr<EasyLog>;static std::auto_ptr<EasyLog> _instance;};std::auto_ptr<EasyLog> EasyLog::_instance;void EasyLog::Log(std::string loginfo) {std::ofstream ofs;time_t t = time(0);char tmp[64];strftime(tmp, sizeof(tmp), "\t[%Y.%m.%d %X %A]", localtime(&t));ofs.open("EasyLog.log", std::ofstream::app);ofs.write(loginfo.c_str(), loginfo.size());ofs << tmp << '\n';ofs.close();}#endif


用法如下:

#include "EasyLog.h"int main(){EasyLog::Inst()->Log("Run...");}
不只是main函数中,任何地方只要include头文件就可以用。

主要是辅助调试,特别是写dll程序的时候比较实用。可以加个宏控制。在发布的时候关掉日志功能。

#include "EasyLog.h"#define EASYLOG 1int main(){#if EASYLOGEasyLog::Inst()->Log("Run...");#endif}




4 0
原创粉丝点击