62 lines
2.3 KiB
Python
62 lines
2.3 KiB
Python
import logging
|
|
|
|
|
|
class Logger:
|
|
logger = None
|
|
levels = {
|
|
"CRITICAL": logging.CRITICAL, "FATAL": logging.FATAL, "ERROR": logging.ERROR, "WARNING": logging.WARNING,
|
|
"WARN": logging.WARN, "INFO": logging.INFO, "DEBUG": logging.DEBUG, "NOTSET": logging.NOTSET,
|
|
"D": logging.DEBUG, "I": logging.INFO, "W": logging.WARNING, "E": logging.ERROR,
|
|
"F": logging.FATAL
|
|
}
|
|
|
|
def __init__(self, name: str = '', level='DEBUG', fh: dict = None, ch: dict = None):
|
|
if fh and (not "format_style" in fh.keys()) and (not '%' in fh["format"]):
|
|
fh["format_style"] = '{'
|
|
if ch and (not "format_style" in ch.keys()) and (not '%' in ch["format"]):
|
|
ch["format_style"] = '{'
|
|
self.logger = logging.getLogger(name)
|
|
self.logger.setLevel(self.levels[level])
|
|
|
|
if fh:
|
|
fhandler = logging.FileHandler(filename=fh["filename"], mode=fh["mode"], encoding='utf-8')
|
|
fhandler.setLevel(self.levels[fh["level"]])
|
|
fhandler.setFormatter(
|
|
logging.Formatter(fmt=fh["format"], style=['%', fh["format_style"]]["format_style" in fh.keys()]))
|
|
self.logger.addHandler(fhandler)
|
|
if ch:
|
|
chandler = logging.StreamHandler()
|
|
chandler.setLevel(self.levels[ch["level"]])
|
|
chandler.setFormatter(
|
|
logging.Formatter(fmt=ch["format"], style=['%', ch["format_style"]]["format_style" in ch.keys()]))
|
|
self.logger.addHandler(chandler)
|
|
|
|
self.d = self.logger.debug
|
|
self.i = self.logger.info
|
|
self.w = self.logger.warning
|
|
self.e = self.logger.error
|
|
self.f = self.logger.fatal
|
|
self.c = self.logger.critical
|
|
|
|
|
|
log = Logger(name='test', level='DEBUG')
|
|
|
|
if __name__ == '__main__':
|
|
log = Logger(name='test', level='DEBUG',
|
|
fh=None and {
|
|
"level": 'DEBUG',
|
|
"format": '{asctime} - {name} - {levelname[0]}: {message}',
|
|
"filename": './test.log',
|
|
"mode": 'a'
|
|
},
|
|
ch={
|
|
"level": 'DEBUG',
|
|
"format": '{asctime} - {name} - {levelname[0]}: {message}'
|
|
})
|
|
log.d("调试")
|
|
log.i("信息")
|
|
log.w("警告")
|
|
log.e("错误")
|
|
log.f("致命")
|
|
log.c("致命")
|