代码实现
import logging
import colorlog
class LogHandler(object):
def __init__(self, level=logging.INFO):
self.logger = logging.getLogger()
self.log_colors_config = {
'DEBUG': 'cyan',
'INFO': 'green',
'WARNING': 'yellow',
'ERROR': 'red',
'CRITICAL': 'red',
}
formatter = colorlog.ColoredFormatter(
'%(log_color)s%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s: %(message)s',
log_colors=self.log_colors_config)
# 设置日志级别
self.logger.setLevel(level)
# 往屏幕上输出
console_handler = logging.StreamHandler()
# 输出到文件
file_handler = logging.FileHandler(filename='test.log', mode='a', encoding='utf8')
file_formatter = logging.Formatter('%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s: %(message)s')
# 设置屏幕上显示的格式
console_handler.setFormatter(formatter)
# 设置写入文件的格式
file_handler.setFormatter(file_formatter)
# 把对象加到logger里
self.logger.addHandler(console_handler)
self.logger.addHandler(file_handler)
if __name__ == '__main__':
log = LogHandler(level=logging.DEBUG)
log.logger.error("error")
log.logger.info("info")
log.logger.debug("debug")
log.logger.warning("warning")
执行结果