-
Notifications
You must be signed in to change notification settings - Fork 2
/
logger.py
37 lines (33 loc) · 1013 Bytes
/
logger.py
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
import sys
from enum import Enum
class LogLevel(Enum):
DEBUG=0
INFO=1
WARNING=2
ERROR=3
NONE=10
class Logger:
def __init__(self, loglevel):
self.loglevel = loglevel
self.files = {
LogLevel.DEBUG: [sys.stdout],
LogLevel.INFO: [sys.stdout],
LogLevel.WARNING: [sys.stderr],
LogLevel.ERROR: [sys.stderr]
}
def __write(self, level, pref, message):
if self.loglevel.value > level.value:
return
for f in self.files[level]:
f.write(pref)
f.write(message)
f.write("\n")
def debug(self, message):
self.__write(LogLevel.DEBUG, "[DEBUG] ", message)
def log(self, message):
self.__write(LogLevel.INFO, "[INFO] ", message)
def warning(self, message):
self.__write(LogLevel.WARNING, "[WARN] ", message)
def error(self, message):
self.__write(LogLevel.ERROR, "[ERROR] ", message)
noLogger = Logger(LogLevel.NONE)