派生自 Algorithm/baseDetector

Scheaven
2021-06-03 168af40fe9a3cc81c6ee16b3e81f154780c36bdb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
//
// 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());
}