logging(日志模块)
-
快速编写格式(扩展性不强)
import logging import requests # 日志配置 logging.basicConfig( filename='log.log', format=' %(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S %p', level=logging.ERROR) # 异常处理 try: requests.get('http://www.xxx.com') except Exception as e: mes = str(e) # 日志生成 logging.error(mes, ext_info=True) #ext_info=True保存堆栈信息
-
推荐编写方式
import logging file_hander = logging.FileHandler(filename='log.log',mode='a',encoding='utf-8',) logging.basicConfig( format=%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s', datafmt='%Y-%m-%d %H:%M:%S %p', handlers=[file_handler,], level=logging.ERROR ) logging.error('你好')
-
更改调用机制:
import logging def get_logger(): file_hander = logging.FileHandler(filename='log.log',mode='a',encoding='utf- 8',) logging.basicConfig( format=%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s', datafmt='%Y-%m-%d %H:%M:%S %p', handlers=[file_handler,], level=logging.ERROR ) return logging logger = get_logger() logging.error('你好')
-
推荐日志处理方式+日志切割
import time import logging from logging import handlers file_handler = handlers.TimedRotatingFileHandler(filename='x3.log', when='s', interval=5, encoding='utf-8') logging.basicConfig( format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S %p', handlers=[file_handler,], level=logging.ERROR ) for i in range(1,100000): time.sleep(1) logging.error(str(i))
-
注意事项
# 在应用日志时,如果想要保留异常的堆栈信息。 import logging import requests logging.basicConfig( filename='wf.log', format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S %p', level=logging.ERROR ) try: requests.get('http://www.xxx.com') except Exception as e: msg = str(e) # 调用e.__str__方法 logging.error(msg,exc_info=True)