竣工备案证网上怎么查,南昌seo排名公司,微信seo什么意思,4免费网站建站为了使项目的所有日志都打印到同一个日志中#xff0c;必须使得所有类使用同一个日志#xff0c;因此将日志类实现为单例。
.h文件
#pragma once#includefstreamclass LogHablee
{
private:LogHablee(std::string dbg_dir);LogHablee(const LogHablee) …为了使项目的所有日志都打印到同一个日志中必须使得所有类使用同一个日志因此将日志类实现为单例。
.h文件
#pragma once#includefstreamclass LogHablee
{
private:LogHablee(std::string dbg_dir);LogHablee(const LogHablee) delete;LogHablee operator(const LogHablee) delete;static LogHablee* _ins; public:void getNowTimePrefix(std::string now_time_prefix);public:static LogHablee* getInstance(std::string dbg_dir){if (_ins nullptr){_ins new LogHablee(dbg_dir);}return _ins;}std::ofstream log;
};
.cpp文件
#include LogHablee.h
#includestringLogHablee* LogHablee::_ins nullptr;LogHablee::LogHablee(std::string dbg_dir)
{std::string nowTimePrefix;getNowTimePrefix(nowTimePrefix);std::string logFilePath(dbg_dir / nowTimePrefix _log.txt);this-log.open(logFilePath, std::ios::trunc);
}void LogHablee::getNowTimePrefix(std::string now_time_prefix)
{std::time_t now_time;struct tm* p new tm;std::time(now_time);localtime_s(p, now_time);int year p-tm_year 1900;int month p-tm_mon 1;int day p-tm_mday;int hour p-tm_hour;int minute p-tm_min;int second p-tm_sec;delete p;// 20221130_134024: 2022年11月30日13点40分24秒now_time_prefix std::to_string(year) std::string(2 - std::to_string(month).length(), 0) std::to_string(month) std::string(2 - std::to_string(day).length(), 0) std::to_string(day) _ std::string(2 - std::to_string(hour).length(), 0) std::to_string(hour) std::string(2 - std::to_string(minute).length(), 0) std::to_string(minute) std::string(2 - std::to_string(second).length(), 0) std::to_string(second);
}
另一个使用到log的类的.h文件
#pragma once
#includestringclass AClass
{
public:AClass(std::string dbg_dir):_dbgDir(dbg_dir) {}void test();private:std::string _dbgDir;
};# 另一个使用到log的类的.cpp文件
#include AClass.h
#includeLogHablee.hvoid AClass::test()
{std::string nowTimePrefix;LogHablee* pHablee LogHablee::getInstance(this-_dbgDir);pHablee-getNowTimePrefix(nowTimePrefix);pHablee-log nowTimePrefix : in AClass::test function std::endl;
}
main函数
#includeLogHablee.h
#includeiostream
#includeAClass.hint main()
{std::string nowTimePrefix;std::string dbgDir(./);LogHablee* pHablee LogHablee::getInstance(dbgDir);pHablee-getNowTimePrefix(nowTimePrefix);pHablee-log nowTimePrefix : PROGRAM START, version 1.0.0.0 std::endl;AClass a(dbgDir);a.test(); // a.test()里面的日志内容也会写入到一开始创建的日志中return 0;
}