Python打印詳細(xì)報錯日志logging問題
更新時間:2023年09月13日 11:07:51 作者:南湖漁歌
這篇文章主要介紹了Python打印詳細(xì)報錯日志logging問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
Python打印詳細(xì)報錯日志logging
方式1
logging模塊可以實現(xiàn)Python程序的錯誤日志功能。
通過使用baseConfig()函數(shù)就可以對logging進行一個日志配置。
包括輸出的格式和錯誤等級,記錄的文件目錄
# 日志模塊 import logging import traceback # 引入日志 logging.basicConfig(filename='log_record.txt', level=logging.DEBUG, filemode='w', format='[%(asctime)s] [%(levelname)s] >>> %(message)s', datefmt='%Y-%m-%d %I:%M:%S') try: print(a+1) # 放主要代碼 except Exception as e: logging.error("Main program error:") logging.error(e) logging.error(traceback.format_exc())
方式2
在程序中完成logger,handler,filter,formater的實例化 被配置好logging,然后再使用logging取得logger進行日志操作
import logging # logging模塊由logger,handler,filter,fomatter四個部分組成 # 獲取一個logger對象 logger = logging.getLogger("haha") # 設(shè)置日志輸出等級 logger.setLevel(logging.DEBUG) # 創(chuàng)建一個文件的handler f_handler = logging.FileHandler("xxx.log") f_handler.setLevel(logging.INFO) # 創(chuàng)建一個控制臺的handler c_handler = logging.StreamHandler() c_handler.setLevel(logging.WARNING) # 設(shè)置日志的輸出格式 fmt = logging.Formatter("%(asctime)s-%(name)s-%(levelname)s-%(message)s") # 給handler綁定一個fomatter類 f_handler.setFormatter(fmt) c_handler.setFormatter(fmt) # 綁定一個handler logger.addHandler(f_handler) logger.addHandler(c_handler) # 使用logger輸出日志信息 logger.debug("debug") logger.info("info") logger.warning("warning") logger.error("error") logger.critical("critiacl")
python在日志中記錄異常
1、在日志中記錄異常
import logging # logging默認(rèn)值打印warning以上級別的信息 logging.debug('這是debug級別的信息!') logging.info('這是info級別的信息!') logging.warning('這是warning級別的信息!') logging.error('這是error級別的信息!') logging.critical('這是critical級別的信息!') # 輸出: # WARNING:root:這是warning級別的信息! root:用戶權(quán)限 # ERROR:root:這是error級別的信息! # CRITICAL:root:這是critical級別的信息!
2、把日志寫到文件里
import logging # logging默認(rèn)值打印warning以上級別的信息 logging.basicConfig(level='DEBUG',filename='./log20210130.log',filemode='a+') logging.debug('這是debug級別的信息!') logging.info('這是info級別的信息!') logging.warning('這是warning級別的信息!') logging.error('這是error級別的信息!') logging.critical('這是critical級別的信息!')
3、結(jié)合實際打印異常日志到文件
import time import logging # logging默認(rèn)值打印warning以上級別的信息 import traceback # 將原始報錯的信息返回出來 logging.basicConfig(level='DEBUG',filename='./log20210130.log',filemode='a+') try: input = int(input('請輸入一個整數(shù):')) print(1/input) except: # 會捕獲所有的異常 # 返回時間和原始報錯信息 logging.error(time.strftime('%y-%m-%d %H:%M:%S')+traceback.format_exc() + '-------------- \n')
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用python腳本自動創(chuàng)建pip.ini配置文件代碼實例
這篇文章主要介紹了使用python腳本自動創(chuàng)建pip.ini配置文件代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-09-09如何利用pandas工具輸出每行的索引值、及其對應(yīng)的行數(shù)據(jù)
這篇文章主要介紹了如何利用pandas工具輸出每行的索引值、及其對應(yīng)的行數(shù)據(jù),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03Python使用進程池并發(fā)執(zhí)行SQL語句的操作代碼
Python的進程池是一種并發(fā)工具,它允許我們將任務(wù)分發(fā)給一組工作進程,這些進程可以同時運行并共享一個進程池,本文給大家介紹了Python使用進程池并發(fā)執(zhí)行SQL語句的操作代碼,需要的朋友可以參考下2024-10-10