1. 程式人生 > >Python學習筆記(25)-Python日誌使用示例

Python學習筆記(25)-Python日誌使用示例

一,簡介

本篇主要演示為何使用日誌,如何輸出日誌,如何設定日誌的級別,如何限制各級別的日誌的輸出以及如何將日誌輸出到檔案。

二,為何使用日誌

使用print()函式輸出除錯資訊是非常不正確的,最簡單的原因就是:print()會遍佈於程式各處,當程式設計師不想再輸出除錯資訊時,需要一處一處的去查詢然後註釋掉print(),非常麻煩。

所以需要注意的是,print()函式實際上是輸出給使用者看到,就如input()是用來接收使用者輸入一樣。

日誌卻是用來顯示給程式設計師看的資訊的,日誌資訊可以區分日誌資訊的嚴重級別,同時可以輕易的選擇是除錯狀態還是執行狀態(可以區分顯示的日誌級別)。

三,如何輸出日誌

首先匯入日誌模組logging,然後對其進行配置,主要配置日誌級別(稍後具體講,日誌輸出的格式)。程式碼如下:

#匯入日誌模組
import logging

#日誌模組配置(DEBUG級別,格式為:時間-級別-訊息)
logging.basicConfig(level=logging.DEBUG,format="%(asctime)s-%(levelname)s:%(message)s")

#輸出日誌
logging.debug("debug日誌")

四,日誌級別

主要有五種,可以通過logging.basicConfig中的level引數修改級別。

DEBUG:小問題,一般在除錯時才會使用
INFO:正常執行訊息
WARNING:警告,可能有問題
ERROR
:錯誤,導致程式部分處理失敗 CRITICAL:致命的問題,程式都要完蛋

如果設定級別為DEBUG,則會輸出所有級別日誌
如果設定級別為ERROR,則只會輸出ERROR和更高的CRITICAL級別的日誌。

例如:

#匯入日誌模組
import logging

#日誌模組配置(級別,格式為:時間-級別-訊息)
logging.basicConfig(level=logging.ERROR,format="%(asctime)s-%(levelname)s:%(message)s")

#輸出日誌
logging.debug("debug日誌")#不會輸出
logging.error
("error日誌")#會輸出 logging.critical("critical日誌")#會輸出

五,日誌禁用

如果在程式都除錯完了,準備運行了,只想輸出CRITICAL級別及以上級別的日誌,則可以呼叫logging.disable(logging.ERROR),該方法的功能是禁用該級別及更低級別的日誌。

例如:

#匯入日誌模組
import logging

#日誌模組配置(級別,格式為:時間-級別-訊息)
logging.basicConfig(level=logging.ERROR,format="%(asctime)s-%(levelname)s:%(message)s")

#禁用日誌
logging.disable(logging.ERROR)


#輸出日誌
logging.debug("debug日誌")#不會輸出
logging.error("error日誌")#不會輸出
logging.critical("critical日誌")#會輸出

六,將日誌輸出到檔案

直接舉例即可,只是在basicConfig中新增filename引數即可。

#匯入日誌模組
import logging

#日誌模組配置(級別,格式為:時間-級別-訊息)
logging.basicConfig(filename="C:\\runlog.txt",level=logging.ERROR,format="%(asctime)s-%(levelname)s:%(message)s")

#輸出日誌
logging.error("debug日誌")

相關推薦

Python學習筆記(25)-Python日誌使用示例

一,簡介 本篇主要演示為何使用日誌,如何輸出日誌,如何設定日誌的級別,如何限制各級別的日誌的輸出以及如何將日誌輸出到檔案。 二,為何使用日誌 使用print()函式輸出除錯資訊是非常不正確的,最簡單的原因就是:print()會遍佈於程式各處,當程式設計師不

python學習筆記(25) 堆疊和遞迴實現三級選單

menu = { '北京':{ '海淀':{ '五道口':{}, '上地':{}, '西三旗':{} }, '昌平':{}, '朝陽':{}, '東城':{} }

python學習筆記(25) 堆棧和遞歸實現三級菜單

.get get bre 山東 python pytho pri () int menu = { ‘北京‘:{ ‘海澱‘:{ ‘五道口‘:{}, ‘上地‘:{}, ‘西三旗‘:{}

Python學習筆記_一個Tkinter示例,使用FileDialog

com 運行 pac filedia itl RoCE geo style 功能 為了使用Python進行數據分析,編寫一個圖形界面,選擇一個Excel文件(或CSV),然後進行後續處理。 一、本示例涵蓋如下知識點: 1、FileDialog的使用 2、退出程序 3

Python學習筆記-Day1-Python基礎

sla yun rac ifs san inb ida lam link %E5%AD%97%E8%8A%82%E5%BA%8F%E8%BD%AC%E6%8D%A2%E4%B8%8E%E7%BB%93%E6%9E%84%E4%BD%93%E4%BD%8D%E5%9F%9Fb

Python學習筆記-Day3-python關鍵字

jieba rtb sat nsh aid aio eve uav multi %E4%B8%80%E4%BB%BD%E5%85%B3%E4%BA%8Ejvm%E5%86%85%E5%AD%98%E8%B0%83%E4%BC%98%E5%8F%8A%E5%8E%9F%E7%

python學習筆記python-nmap安裝

python首先最新的鏈接地址和《python絕技》上不同,已經修改。下載後tar,然後運行python setup.py installroot@kali:/# wget http://xael.org/pages/python-nmap-0.6.1.tar.gz--2017-03-22 13:41:38-

python學習筆記(二):python數據類型

指定位置 com 增刪 tab 邏輯與 reverse 小數類型 一個表 fas 上一篇博客寫了python的入門和簡單流程控制,這次寫python的數據類型和各種數據類型的內置方法。一、數據類型是什麽鬼?計算機顧名思義就是可以做數學計算的機器,因此,計算機程序理所當然地可

python學習筆記(三):python運算符

賦值 賦值運算符 返回 -h == ble and mil 1-1 python的運算符總結 種類 運算符 算數運算符 +,- , * , / , % , ** , // 比較運算符

python學習筆記1-python相關應用套件

統計 scipy numpy ebo smo pytho nbsp 大數據處理 notebook 完整的數據分析套件 統計科學計算 Numpy,Scipy,statsmodels 深度學習 TensorFlow,MXNET 結構化數據處理與分析 Pandas 大數據處理 P

Python學習筆記(三) Python高階特性

1.切片 對於list和tuple,經常要取其中一部分元素,如果用迴圈取,太麻煩,可以用切片簡化操作 myList = [1, 2, 3, 4, 5] #表示,從索引0開始取,直到索引3為止,但不包括索引3, 輸出 myList[0:3] = [1, 2, 3] print("m

python學習筆記04-python模組

1.介紹 一個.py檔案就稱之為一個模組(Module) Python按目錄來組織模組——包(Package) 每一個包目錄下必須有一個init.py的檔案,可以是空檔案,也可以有Python程式碼。因為init.py本身就是一個模組,而它的模組名就是包名。  2.第

python學習筆記03-python函數語言程式設計

1. 高階函式 1. 高階函式基礎 變數可以指向函式 函式名也是變數 高階函式允許傳入函式  #!/usr/bin/env python #將函式賦值給變數 A = abs print A(-10) #匯入__builtin__模組 import __builtin

python學習筆記02-python高階學習

1. 切片 注意,list、tuple、字串'xxx'、Unicode字元中u'xxx'都可以看成一種list。都可以進行切片操作。 #定義一個list >> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] #取出lis

python學習筆記01-python基礎學習

1. 輸入和輸出 #!/usr/bin/env python name = raw_input('please enter your name:') print 'hello,',name 2. 資料型別和變數 十進位制:100 十六進位制:0xff00 浮點數:3

python學習筆記05-python面向物件程式設計

1.面向物件程式設計 1. 類和例項 注意,類的所有方法,的第一個引數一定是self。 在呼叫類的方法時,不需要傳入第一個引數self。  #!/usr/bin/env python # -*- coding: utf-8 -*- #定義一個類Student,繼承自

python學習筆記python字典(dict)

1、字典dict的建立 Python內建了字典:dict的支援,dict全稱dictionary,在其他語言中也稱為map,使用鍵-值(key-value)儲存,具有極快的查詢速度。注意字典內各個部分是沒有順序的區別的; 其java的map是一樣的,屬於key:value模式,一個簡單的

Python學習筆記python元組

python的元組(tuple)和列表(list)類似,是一個有序的列表,區別在於tuple是不能修改的,其初始化方式如下: >>> classmates = ('Michael', 'Bob', 'Tracy') 現在,classmates這個tuple不能變了

python學習筆記python函式定義和傳參方法說明

一、函式定義方式 函式定義用關鍵字def,其引數傳遞不用設定型別,也不用定義返回,然後在函式名稱後加上:號,這點和java很不一樣,相對來說更加簡單了;另外包含關係上用四個空格來標識,而非java的;號; 如下為一個範例,定義了一個函式用來生成任意上界的菲波那契數列: # -*- c

Python學習筆記python列表方法

在python中list是一個有序的集合,可以隨時新增和刪除裡邊的元素 其初始化可以使用如下語句: >>> a=[11,22,33,44,55,66] >>>len(a) 6 如下為方法說明 1、append(x) 在list的尾部加入一