在實際的生產使用中,常常需要使用日志配合異常捕獲來監測程序的運行情況。本文對python中的Logging模塊和traceback模塊的使用做簡單的總結,以便快速上手。
1.日志模塊(logging)
python的logging模塊可分別對日志級別、日志輸出格式、日期輸出格式,日志路徑,打開文件方式等進行設置。
basicConfig關鍵字參數
(1) level
(2) format
(3) datefmt
2.異常捕獲模塊(traceback)
- traceback.format_exc()以字符串返回異常信息
- traceback.print_exc()直接打印出異常信息
可以填入file參數,把異常信息填入到指定的file里
traceback.print_exc(file=open('error.txt','a'))
3.代碼示例
# -*- coding:utf-8 -*-
import os
import logging
import traceback
#設置log, 這里使用默認log
logging.basicConfig(
level=logging.INFO, #日志級別,只有日志級別大於等於設置級別的日志才會輸出
format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', #日志輸出格式
datefmt='[%Y-%m_%d %H:%M:%S]', # 日期表示格式
filename=os.path.dirname(os.path.realpath(__file__)) + "/" + 'test.log', #輸出定向的日志文件路徑
filemode='a' #日志寫模式,是否尾部添加還是覆蓋
)
a=10
b=0 #設置為0, 走異常流程; 否則, 走正常流程
try:
res=a/b
logging.info("exec success, res:" + str(res))
except Exception,e:
#format_exc()返回異常信息字符串,print_exc()則直接給打印異常信息
traceback.print_exc()
logging.warning("exec failed, failed msg:" + traceback.format_exc())