nim_duilib/examples/proto_debuger/loger.cpp
2022-01-27 00:42:33 +08:00

105 lines
2.7 KiB
C++

//
// Created by bt110 on 2019/8/19.
//
#include "loger.h"
using namespace Loger;
string getTimeDate() {
time_t timep;
time (&timep);
char tmp[64];
strftime(tmp, sizeof(tmp), "%Y-%m-%d",localtime(&timep) );
return string(tmp);
}
string getTime(){
time_t timep;
time (&timep);
char tmp[64];
strftime(tmp, sizeof(tmp), "%Y-%m-%d %H:%M:%S",localtime(&timep) );
return string(tmp);
}
int _C_Loger::Debug(string dat,string function,int line){
// 还没有过天
if(getTimeDate() == this->mCurrentDate){
string tmp = getTime();
tmp += ": ";
tmp += dat;
tmp += "at [" + function + " line " + std::to_string(line) + "]";
tmp += "\n";
int ret =fwrite(tmp.c_str(),tmp.size(),1,this->mFile);
fflush(this->mFile);
return ret;
}else{ // 已经过天了
this->mCurrentDate = getTimeDate();
string path = getTimeDate() + ".log";
this->mFile = fopen(path.c_str(),"w+");
if (this->mFile == nullptr){
this->error = true;
}
string tmp = getTime();
tmp += ": ";
tmp += dat;
tmp += "at [" + function + " line " + std::to_string(line) + "]";
tmp += "\n";
int ret = fwrite(tmp.c_str(),tmp.size(),1,this->mFile);
fflush(this->mFile);
return ret;
}
return 0;
}
void _C_Loger::operator<<(const string& wb) {
// 还没有过天
if(getTimeDate() == this->mCurrentDate) {
string tmp = getTime();
tmp += ":";
tmp += wb;
tmp += " \n";
fwrite(tmp.c_str(),tmp.size(),1,this->mFile);
fflush(this->mFile);
}else{ // 已经过天了
this->mCurrentDate = getTimeDate();
string path = getTimeDate() + ".log";
this->mFile = fopen(path.c_str(),"w+");
if (this->mFile == nullptr){
this->error = true;
}
string tmp = getTime();
tmp += ":";
tmp += wb;
tmp += " \n";
fwrite(tmp.c_str(),tmp.size(),1,this->mFile);
fflush(this->mFile);
}
}
bool file_existed(string path) {
fstream _file;
_file.open(path.c_str(),ios::in);
if(!_file) {
return false;
}
else {
_file.close();
return true;
}
}
_C_Loger::_C_Loger(FILE *p) {
this->mFile = p;
this->mCurrentDate = getTime();
}
_C_Loger::_C_Loger(string path) {
this->mCurrentDate = getTimeDate();
this->mCurrentPath = path + this->mCurrentDate;
this->mFile = fopen(this->mCurrentPath.c_str(),"a+");
if(! this->mFile){
fprintf(stderr,"error open log files %s code %d,please check file path",this->mCurrentPath.c_str(),errno);
exit(0);
}else{
}
}