// // Created by Scheaven on 2020/9/9. // #include "log_util.h" #include "../easylogging++.h" INITIALIZE_EASYLOGGINGPP SLOG* SLOG::instance = NULL; SLOG* SLOG::getInstance() { if(SLOG::instance==NULL){ instance = new SLOG(); } return instance; } SLOG::SLOG() { // el::Loggers::addFlag(el::LoggingFlag::DisableApplicationAbortOnFatalLog); // el::Loggers::addFlag(el::LoggingFlag::StrictLogFileTimeCheck); // el::Loggers::reconfigureAllLoggers(el::ConfigurationType::LogFileRollingTime, "minute"); /// 按分钟滚动日志文件 el::Loggers::addFlag(el::LoggingFlag::StrictLogFileSizeCheck); el::Loggers::configureFromGlobal("../lib/my_log.conf"); el::Loggers::reconfigureAllLoggers(el::ConfigurationType::MaxLogFileSize,"10485761235"); /// 注册回调函数 // el::Helpers::installPreRollOutCallback(rolloutHandler); } SLOG::~SLOG() { // el::Helpers::uninstallPreRollOutCallback(); } void SLOG::release() { delete SLOG::instance; SLOG::instance = NULL; el::Helpers::uninstallPreRollOutCallback(); } void SLOG::addLog(int type, std::string context) { switch(type) { case 0: LOG(INFO) << context; break; case 1: LOG(WARNING) << context; break; case 2: LOG(ERROR) << context; break; case 3: LOG(DEBUG) << context; break; case 4: LOG(TRACE) << context; break; } } void rolloutHandler(const char* filename, std::size_t size) { /// 备份日志 // system("mkdir bin"); // std::stringstream ss; // ss << "move " << filename << " bin\\log_backup_" << ++idx; // system(ss.str().c_str()); }