logging模塊
很多程序都有記錄日志的需求,並且日志中包含的信息即有正常的程序訪問日志,還可能有錯誤、警告等信息輸出,python的logging模塊提供了標准的日志接口,你可以通過它存儲各種格式的日志,logging的日志可以分為 debug()
, info()
, warning()
, error()
and critical() 5個級別,
下面我們看一下怎么用:
---恢復內容結束---
logging模塊
很多程序都有記錄日志的需求,並且日志中包含的信息即有正常的程序訪問日志,還可能有錯誤、警告等信息輸出,python的logging模塊提供了標准的日志接口,你可以通過它存儲各種格式的日志,logging的日志可以分為 debug()
, info()
, warning()
, error()
and critical() 5個級別,
下面我們看一下怎么用:
%(name)s | Logger的名字 |
%(levelno)s | 數字形式的日志級別 |
%(levelname)s | 文本形式的日志級別 |
%(pathname)s | 調用日志輸出函數的模塊的完整路徑名,可能沒有 |
%(filename)s | 調用日志輸出函數的模塊的文件名 |
%(module)s | 調用日志輸出函數的模塊名 |
%(funcName)s | 調用日志輸出函數的函數名 |
%(lineno)d | 調用日志輸出函數的語句所在的代碼行 |
%(created)f | 當前時間,用UNIX標准的表示時間的浮 點數表示 |
%(relativeCreated)d | 輸出日志信息時的,自Logger創建以 來的毫秒數 |
%(asctime)s | 字符串形式的當前時間。默認格式是 “2003-07-08 16:49:45,896”。逗號后面的是毫秒 |
%(thread)d | 線程ID。可能沒有 |
%(threadName)s | 線程名。可能沒有 |
%(process)d | 進程ID。可能沒有 |
%(message)s | 用戶輸出的消息 |
想給日志文件加上日期,如下所示:
import logging
"""basicConfig()是設置日期格式的形式,level是日期的等級,datafmt是日期的格式"""
logging.basicConfig(format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p',level=logging.DEBUG)
logging.warning('is when this event was logged.')
logging.basicConfig(format="%(asctime)s %(message)s",datefmt="%m/%d/%Y %I:%M:%S %p",level=logging.DEBUG)
logging.debug("I love python")
運行結果如下:
05/30/2017 06:40:33 AM is when this event was logged.
05/30/2017 06:40:33 AM I love python
如果想同時把log打印在屏幕和文件日志里,就需要了解一點復雜的知識了
Python 使用logging模塊記錄日志涉及四個主要類,使用官方文檔中的概括最為合適:
(1)logger提供了應用程序可以直接使用的接口;
(2)handler將(logger創建的)日志記錄發送到合適的目的輸出;
(3)filter提供了細度設備來決定輸出哪條日志記錄;
(4)formatter決定日志記錄的最終輸出格式。
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。