项目需求
- 控制台输出所有日志;
- 单独文件记录Error/Critical级别的日志;
日志配置封装
自定义的 log_util.py 文件内容:
import logging
logger = logging.getLogger("stock_trader")
logger.setLevel(logging.INFO)
logger.propagate = False # 关闭向上传递的功能
# 文本格式
formatter = logging.Formatter(
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"
"%(asctime)s [%(levelname)s] %(filename)s:%(lineno)s\n"
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"
"%(message)s"
)
# 控制台 处理器
console_handler = logging.StreamHandler()
console_handler.setFormatter(formatter)
logger.handlers.append(console_handler)
# 文本 Error/Critical 处理器
file_error_handler = logging.FileHandler('log_error.txt', encoding='UTF-8')
file_error_handler.setLevel(logging.ERROR)
file_error_handler.setFormatter(formatter)
logger.handlers.append(file_error_handler)
# 针对 exception() 特殊设置封装一下
def logger_exception(err_msg):
logger.exception(err_msg, stack_info=True)
使用示例
logger.debug('aaa') # 注意:此条日志不会被输出
logger.info('bbb')
logger.error("发生一个严重错误")
logger.setLevel(logging.DEBUG) # 动态改变 日志级别
logger.debug('ccc')
logger.info('ddd')
输出:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2020-10-08 10:17:37,456 [INFO] test.py:6 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ bbb ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2020-10-08 10:17:37,456 [ERROR] test.py:7 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 发生一个严重错误 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2020-10-08 10:17:37,456 [DEBUG] test.py:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ccc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2020-10-08 10:17:37,456 [INFO] test.py:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ddd
相关文章: