Python如何記錄日誌,Python記錄日誌
python的日誌記錄非常簡單,短短几行代碼就能實現日誌記錄,注釋比較清楚了,不詳細解釋了。
Python代碼
#encoding: utf-8
import logging
#擷取日誌對象,可以帶名字,不帶名字返回root Logger
logger = logging.getLogger()
#定義一個檔案控制代碼
file=logging.FileHandler("log.txt")
logger.addHandler(file)
#定義格式器,時間,記錄層級,訊息
formatter=logging.Formatter("%(asctime)s %(levelname)s %(message)s")
file.setFormatter(formatter)
#設定為記錄任何日誌,logging提供多種層級的日誌資訊,如:NOTSET, DEBUG, INFO, WARNING, ERROR, CRITICAL等
logger.setLevel(logging.NOTSET)
for i in range(0,10):
logger.info(str(i))
關於formatter的配置,採用的是%(<dict key>)s的形式,就是字典的關鍵字替換。提供的關鍵字包括:
Format |
Description |
%(name)s |
Name of the logger (logging channel). |
%(levelno)s |
Numeric logging level for the message (DEBUG, INFO, WARNING, ERROR, CRITICAL). |
%(levelname)s |
Text logging level for the message ('DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'). |
%(pathname)s |
Full pathname of the source file where the logging call was issued (if available). |
%(filename)s |
Filename portion of pathname. |
%(module)s |
Module (name portion of filename). |
%(funcName)s |
Name of function containing the logging call. |
%(lineno)d |
Source line number where the logging call was issued (if available). |
%(created)f |
Time when the LogRecord was created (as returned by time.time()). |
%(relativeCreated)d |
Time in milliseconds when the LogRecord was created, relative to the time the logging module was loaded. |
%(asctime)s |
Human-readable time when the LogRecord was created. By default this is of the form “2003-07-08 16:49:45,896” (the numbers after the comma are millisecond portion of the time). |
%(msecs)d |
Millisecond portion of the time when the LogRecord was created. |
%(thread)d |
Thread ID (if available). |
%(threadName)s |
Thread name (if available). |
%(process)d |
Process ID (if available). |
%(message)s |
The logged message, computed as msg % args. |
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。