日志模块
from logging import getLogger, FileHandler, StreamHandler, Formatter
class Logger:
def __init__(self, name, log_level='info', log_file=None):
self.logger = getLogger(name)
self.logger.setLevel(log_level)
formatter = Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
if log_file:
fh = FileHandler(log_file)
fh.setLevel(log_level)
self.logger.addHandler(fh)
fh.setFormatter(formatter)
else:
ch = StreamHandler()
ch.setLevel(log_level)
self.logger.addHandler(ch)
ch.setFormatter(formatter)
def info(self, msg):
self.logger.info(msg)
def debug(self, msg):
self.logger.debug(msg)
def warning(self, msg):
self.logger.warning(msg)
def error(self, msg):
self.logger.error(msg)
def critical(self, msg):
self.logger.critical(msg)
def exception(self, msg):
self.logger.exception(msg)
if __name__ == '__main__':
logger = Logger('测试日志', log_level='DEBUG')
logger.debug('test')
logger.info('test')
logger.warning('test')
logger.error('test')
logger.critical('test')
try:
a = 1/0
except Exception as e:
logger.exception(e)
logger.info('test')
2022-04-12 22:23:34 - 测试日志 - DEBUG - test
2022-04-12 22:23:34 - 测试日志 - INFO - test
2022-04-12 22:23:34 - 测试日志 - WARNING - test
2022-04-12 22:23:34 - 测试日志 - ERROR - test
2022-04-12 22:23:34 - 测试日志 - CRITICAL - test
2022-04-12 22:23:34 - 测试日志 - ERROR - division by zero
Traceback (most recent call last):
File "E:\python project\log.py", line 48, in <module>
a = 1/0
ZeroDivisionError: division by zero
2022-04-12 22:23:34 - 测试日志 - INFO - test

浙公网安备 33010602011771号