108 lines
2.7 KiB
C++
108 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{
|
||
|
|
||
|
}
|
||
|
}
|