Python logging模組 捕獲異常,並儲存為 logging 檔案
____tz_zs
logging模組簡單使用 basicConfig
.
#!/usr/bin/python2.7 # -*- coding:utf-8 -*- """ @author: tz_zs """ import logging import time import traceback import sys logging.basicConfig(level=logging.DEBUG, format='asctime: %(asctime)s \n' # 時間 'filename_line: %(filename)s_[line:%(lineno)d] \n' # 檔名_行號 'level: %(levelname)s \n' # log級別 'message: %(message)s \n', # log資訊 datefmt='%a, %d %b %Y %H:%M:%S', filename=sys.path[1] + '/output/test_try_logging.log', # sys.path[1]獲取當前的工作路徑 filemode='w') # 如果模式為'a',則為續寫(不會抹掉之前的log) i = 0 while i < 3: i += 1 time.sleep(1) try: a = 1 / 0 except ZeroDivisionError, e: # traceback.format_exc()為詳細情況 logging.debug("%s____%s\n" "traceback.format_exc():____%s" % (ZeroDivisionError, e, traceback.format_exc())) continue except BaseException, e: logging.debug("%s____%s" % (BaseException, e)) continue
·
log檔案
asctime: Mon, 02 Jul 2018 16:28:56 filename_line: test_try_logging.py_[line:31] level: DEBUG message: <type 'exceptions.ZeroDivisionError'>____integer division or modulo by zero traceback.format_exc():____Traceback (most recent call last): File "/home/zmate/PycharmProjects/ZM_Lab_AI_research/development/test/test_try_logging.py", line 27, in <module> a = 1 / 0 ZeroDivisionError: integer division or modulo by zero asctime: Mon, 02 Jul 2018 16:28:57 filename_line: test_try_logging.py_[line:31] level: DEBUG message: <type 'exceptions.ZeroDivisionError'>____integer division or modulo by zero traceback.format_exc():____Traceback (most recent call last): File "/home/zmate/PycharmProjects/ZM_Lab_AI_research/development/test/test_try_logging.py", line 27, in <module> a = 1 / 0 ZeroDivisionError: integer division or modulo by zero asctime: Mon, 02 Jul 2018 16:28:58 filename_line: test_try_logging.py_[line:31] level: DEBUG message: <type 'exceptions.ZeroDivisionError'>____integer division or modulo by zero traceback.format_exc():____Traceback (most recent call last): File "/home/zmate/PycharmProjects/ZM_Lab_AI_research/development/test/test_try_logging.py", line 27, in <module> a = 1 / 0 ZeroDivisionError: integer division or modulo by zero
·
參考文章:
logging模組更多高階用法:
1、日誌級別
級別 級別數值 使用時機
DEBUG 10 詳細資訊,常用於除錯。
INFO 20 程式正常執行過程中產生的一些資訊。
WARNING 30 警告使用者,雖然程式還在正常工作,但有可能發生錯誤。
ERROR 40 由於更嚴重的問題,程式已不能執行一些功能了。
CRITICAL 50 嚴重錯誤,程式已不能繼續執行。
預設級別是WARNING,表示只有WARING和比WARNING更嚴重的事件才會被記錄到日誌內,低級別的資訊會被忽略。
原始碼中等級的對應關係:
CRITICAL = 50
FATAL = CRITICAL
ERROR = 40
WARNING = 30
WARN = WARNING
INFO = 20
DEBUG = 10
NOTSET = 0
2、Python 的 logging 模組主要包括:
Loggers:記錄器,提供應用程式程式碼能直接使用的介面;
Handlers:處理器,將記錄器產生的日誌傳送至目的地;
Filters:過濾器,提供更好的粒度控制,決定哪些日誌會被輸出;
Formatters:格式化器,設定日誌內容的組成結構和訊息欄位。
.
import logging
def log_client(file_name):
# logging.basicConfig(level=logging.WARNING,
# format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
# datefmt='%a, %d %b %Y %H:%M:%S',
# # filename=sys.path[1] + '/output/log/get_market_quote_data_from_net.log',
# filename='output/log/%s.log' % __file__.split("/")[-1].split(".")[0],
# filemode='a')
# 建立logger記錄器
logger = logging.getLogger(file_name)
logger.setLevel(logging.DEBUG)
# 建立handler處理器
handler = logging.FileHandler(filename='output/log/%s.log' % file_name, mode='a')
handler.setLevel(logging.WARNING)
# 建立formatter格式化器
formatter = logging.Formatter(fmt='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
handler.setFormatter(formatter)
# 新增handler
logger.addHandler(handler)
return logger
.
相關推薦
Python logging模組 捕獲異常,並儲存為 logging 檔案
____tz_zs logging模組簡單使用 basicConfig . #!/usr/bin/python2.7 # -*- coding:utf-8 -*- """ @author: tz_zs """ import logging import ti
Python+OGR庫學習(一):讀取點向量檔案屬性值和座標,並儲存為TXT(一行一個要素值)
程式碼思路: 1、匯入相關庫包,切換到當前資料夾 2、註冊驅動,開啟點向量檔案,獲取圖層 3、開啟待寫入TXT檔案 4、遍歷要素: (1)獲取當前要素‘ID’和‘cover’欄位屬性 (2)獲取當前點要素對應幾何物件和其座標值X,Y (3)將ID、cover、X、Y寫入TXT檔案 (
python 利用imap接收郵件,並儲存附件
def SaveAttachImap():# login the imap server ,retrive the new mails ,and download the attachments. M = imaplib.IMAP4(mail_host,mail_po
獲取視訊的每一幀,並儲存為.jpg圖片
#include<opencv2\opencv.hpp> #include <iostream> #include <stdio.h> #include<fstream> using namespace std; using names
編寫Python程式求地球表面兩點的球面距離,並打包為exe檔案。
編寫Python程式求地球表面兩點的球面距離 這是第一次使用Python針對具體需要來編寫一個相對完整的程式。 需求分析 有一個朋友常常需要計算兩個已知經緯座標的海上石油平臺之間的距離。 雖然這只是一個很簡單的解析幾何問題,但重複的計算依然耗時耗力。 設計一個程式來幫他完成這
如何在CAD中繪製聚合線,並儲存為電腦桌面?
如何在CAD中繪製聚合線,並儲存為電腦桌面?在我們進行繪製CAD圖紙的時候,一般都是藉助一些工具來進行繪製的,那就是CAD編輯器,在CAD編輯器中,繪圖是最基本的操作,編輯器中也有很多的功能來工我們繪圖時來使用,但是在如何在CAD中繪製聚合線,並儲存為電腦桌面?具體要怎麼來操作呢?下面小編就來教教大家在迅捷C
Docker-建立一個mysql容器,並儲存為本地映象
查詢docker hub上的映象 [[email protected] ~]$ docker search mysql NAME DESCRIPTION
為raw資料新增影象頭,並儲存為bmp影象(改進)
改進:不再從參考影象讀調色盤,程式內部建立調色盤 #include "stdio.h" #include "Windows.h" unsigned char *pBmpBuf;//讀入影象資料的指標 int bmpWidth;//影象的寬 int bmpHeight;//
android上用C語言讀取fb0實現截圖,並儲存為rgb565的bmp
好久沒有看,這兩天在折騰一下,更新一下:修正了framebuffer bgra_8888格式截圖變紅的問題 ================================= android上用C語言讀取fb0實現截圖,儲存為bmp圖片, 支援16位
幾行Python程式碼生成飯店營業額模擬資料並儲存為CSV檔案
CSV檔案是一種通用的、簡單的檔案格式,以純文字形式儲存表格資料(數字和文字),在多個領域都有廣泛應用,經常用來在不同程式之間交換資料。 下面的程式碼使用Python標準庫datetime和random生成資料模擬一個飯店的銷量,然後使用標準庫csv寫入CSV檔案。可以調整程式中的數字,生成更多符合要求的資
Java讀取介面中的資料,並儲存到txt檔案中!
//建立讀取介面中資料的方法 public static String read() { URL url = null; BufferedReader reader = null; HttpURLConnection connection = null; I
robot framework讀取Excel檔案,並儲存為list
最近剛使用Robot Framework不久,為了使程式碼和資料分離,需要讀取Excel文字資訊,問題困擾了一天,最後終於解決了, 讀檔案需要ExcelLibrary包支援 1.安裝ExcelLibrary 可以直接通過命令安裝:pip install robotfr
獲取12306站點對照資訊,並保持為json檔案
import time import json import requests from requests.exceptions import RequestException def getResponse(url): try: headers = {'User-Agen
獲取當前螢幕影象並儲存為bmp檔案
此函式建立了1080p高清圖片,即解析度為:1920 x 1080 如果想建立不同的解析度圖片,可以修改函式中的 nWidth 和 nHeight. 此文僅供參考,如有不妥之處,請多多指教。 void Create1080p() { int nWidth = 19
獲取資料夾下的檔案列表,並匯出為txt檔案
#! /usr/bin/env python # -*- coding: utf-8 -*- # __author__ = "wxf" # Email: [email protected] #
Windows客戶端開發--截圖並儲存為JPG檔案
JPG和PNG的區別: PNG is a true color lossless format. In practice it can accomplish a compression on standard photos of a factor of 2-3
python讀取sqlserver資料,並儲存到csv中
# -*- coding: utf-8 -*- """ @use:查詢17.11-18.1,18.6-18.8的PM2.5資料,匯出到csv """ import pymssql import xlwt import datetime from xml.dom.minidom import
python用opencv批量檢測人臉,並儲存
import cv2 import sys import os from PIL import Image cascPath = "haarcascade_frontalface_default.xml" #訓練引數檔案 faceCascade = cv2.CascadeCl
Python爬蟲實戰 :批量採集股票資料,並儲存到Excel中
小編說:通過本文,讀者可以掌握分析網頁的技巧、Python編寫網路程式的方法、Excel的操作,以及正則表示式的使用。這些都是爬蟲專案中必備的知識和技能。本文選自《Python帶我起飛》。 例項描述:通過編寫爬蟲,將指定日期時段內的全部上市公司股票資料爬取下來,並按照股
Python Flask,捕獲異常,捕獲404錯誤,errorhandler(),自定義異常處理函式
demo.py(捕獲異常,自定義異常處理函式): # coding:utf-8 from flask import Flask app = Flask(__name__) # 捕獲404異常錯誤 @app.errorhandler(404) # 當發生404錯誤時,會被