​logging​​模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点:

  • 可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息;
  • ​print​​将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其它数据;logging则可以由开发者决定将信息输出到什么地方,以及怎么输出;

标准输出

import sys
import traceback
import logging

def func(a, b):
return a / b


if __name__ == '__main__':
try:
func(1, 0)
except Exception as e:
logging.exception(e) # 方式一
traceback.print_exc(file=sys.stdout) # 方式二

写入日志文件

import time
import logging
def log(e):
logger = logging.getLogger(__name__)
logger.setLevel(level=logging.WARNING)
handler = logging.FileHandler('log/log-%s.txt' % time.strftime('%Y-%m-%d'))
handler.setLevel(logging.WARNING)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.exception(msg=e)


from browser.webchat_ui2 import WebchatUi2
try:
1/0
except Exception as e:
log(e)

参考

​https://docs.python.org/3/library/logging.html​