wangzhengquan
2020-07-06 302ae4427b04a25e4f1ee8acadbb05bf902f47f7
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
#ifndef __LOGGER_H__
#define __LOGGER_H__
 
#include "usg_common.h"
#include "usg_typedef.h"
 
class Logger {
    std::string configFile;
    int level;
 
    void dolog(const char *fmt, va_list ap)
    {
        char    buf[MAXBUF];
        vsnprintf(buf, MAXBUF-1, fmt, ap);
        strcat(buf, "\n");
        fflush(stdout);        /* in case stdout and stderr are the same */
        fputs(buf, stderr);
        fflush(NULL);        /* flushes all stdio output streams */
    }
public:
    enum {
        ALL ,
        DEBUG ,
        INFO ,
        WARN ,
        ERROR ,
        FATAL ,
        OFF
    };
 
    Logger(int l = INFO): level(l) {}
    Logger(std::string cf);
    
 
    void log(int _level,  const char *fmt,  ...);
 
    void debug(const char *fmt, ...);
    void info(const char *fmt, ...);
    void warn(const char *fmt, ...);
    void error(const char *fmt, ...);
    void fatal(const char *fmt, ...);
};
 
#endif