forked from ai-adv-lab/deepspeech.mxnet
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathlog_util.py
More file actions
52 lines (39 loc) · 1.77 KB
/
log_util.py
File metadata and controls
52 lines (39 loc) · 1.77 KB
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
import logging
import logging.handlers
import os
from singleton import Singleton
class SingletonType(type):
def __call__(cls, *args, **kwargs):
try:
return cls.__instance
except AttributeError:
cls.__instance = super(SingletonType, cls).__call__(*args, **kwargs)
return cls.__instance
class LogUtil(Singleton):
_logger = None
_filename = None
def __init__(self, filename=None):
self._filename = filename
# logger
self._logger = logging.getLogger('logger')
# remove default handler
self._logger.propagate = False
stream_handler = logging.StreamHandler()
stream_formatter = logging.Formatter('[%(levelname)8s][%(asctime)s.%(msecs)03d] %(message)s',
datefmt='%Y/%m/%d %H:%M:%S')
stream_handler.setFormatter(stream_formatter)
if self._filename is not None:
file_max_bytes = 10 * 1024 * 1024
if not os.path.isabs(self._filename):
self._filename = "./log/" + self._filename
file_handler = logging.handlers.RotatingFileHandler(filename=self._filename,
maxBytes=file_max_bytes,
backupCount=10, encoding='utf-8')
file_formatter = logging.Formatter('[%(levelname)8s][%(asctime)s.%(msecs)03d] %(message)s',
datefmt='%Y/%m/%d %H:%M:%S')
file_handler.setFormatter(file_formatter)
self._logger.addHandler(file_handler)
self._logger.addHandler(stream_handler)
self._logger.setLevel(logging.DEBUG)
def getlogger(self):
return self._logger