VTrain/ai_matrix/mylog/mylog.cpp

75 lines
1.6 KiB
C++
Raw Permalink Normal View History

2024-11-27 12:47:45 +00:00
#include "mylog.h"
namespace ai_matrix
{
MyLog::~MyLog()
{
if (of_.is_open())
{
of_.close(); //关闭文件
}
}
std::string MyLog::get_name() const
{
return name_;
}
void MyLog::open_file(std::string filename)
{
if (of_.is_open())
{
of_.close(); //关闭文件
}
of_.open(filename.c_str(), std::ios_base::out | std::ios_base::app);
assert(of_.is_open() && "file create failed, please check the file's name and path.");
name_ = filename;
}
void MyLog::close()
{
if (of_.is_open())
{
of_.close(); //关闭文件
}
}
bool MyLog::is_open()
{
return of_.is_open();
}
void MyLog::write(std::string value)
{
if (of_.is_open() == false)
{
return;
}
long int usValue = 0;
struct timeval time = {0, 0};
gettimeofday(&time, nullptr);
time_t timep = time.tv_sec;
struct tm *ptm = gmtime(&timep); //返回tm结构的格林尼治时间GMT
char timeString[32] = {0};
//%F 年-月-日 %X 标准的时间串
strftime(timeString, 32, "[%F %X:", ptm);
usValue = time.tv_usec;
//时间
of_.fill('0');
of_ << timeString << std::setw(3) << usValue / 1000 << "]";
//位置
std::string file = __FILE__;
std::string fileName = file.substr(file.rfind('/') + 1);
of_ << "[" << fileName << " " << __FUNCTION__ << ":" << __LINE__ << "] ";
//内容
of_ << value << std::endl;
}
}