Logging模組的使用

2021-08-29 23:11:14 字數 2225 閱讀 2066

logging模組,針對日誌操作的模組

logging模組可替代print函式的功能,並能將標準輸出輸入到日誌檔案儲存起來

且利用logging模組可部分替代debug功能

logging模組中有6個級別,分別是

notset

0debug

10info

20warning

30error

40critical

50這些級別的用處,先將自己的日誌定乙個級別,

logging模組發出的資訊級別高於定義的級別,將在螢幕顯示出來;

若低於定義的級別則略過;

若未定義級別,則預設級別是warning

logging最簡單的方法就是logging.basicconfig

logging.basicconfig使用方法為:logging.basicconfig([**kwargs])

這個函式的引數有:

filename:用指定檔名建立filehandler

filemode:檔案開啟方式。預設值『a』,可以改為『w』

format:指定handler使用日誌顯示格式

detafmt:指定日期時間格式

level:設定rootlogger的日誌級別

stream:用指定的stream建立streamhandler。若同時有filename和stream兩個引數,忽略stream引數

fomat引數能用到的格式化串:

%(name)s:logger的名字

%(levelno)s:數字形式的日誌級別

%(levelname)s:檔案形式的日誌級別

%(pathname)s:呼叫日誌輸出的模組的完整路徑,可能沒有

%(filename)s:呼叫日誌輸出函式的模組的檔名

%(modules)s:呼叫日誌輸出函式的模組名

%(funcname)s:呼叫日誌輸出函式的函式名

%(lineno)d:呼叫日誌輸出函式的語句所在**行

%(created)f:當前時間,用unix標準的表示時間的浮點數表示

%(relativecreated)d:輸出日誌資訊時,自logger建立以來的毫秒數

%(asctime)s:字串形式的當前時間

%(thread)d:執行緒id

%(threadname)s:執行緒名

%*(process)d程序id

%(message)s:使用者輸出的訊息

import logging

class testlogging(object):

def __init__(self):

logformat = '%(asctime)-12s %(levelname)-8s %(name)-10s %(message)-12s'

# 字串的時間 數字形式的日誌級別 logger的名字 使用者輸出的訊息

logfilename = './testlog.txt'

logging.basicconfig(level = logging.info, #設定日誌級別

format = logformat, #指定handler使用的日誌顯示格式

filename = logfilename, #用指定的檔名建立資料夾

filemode = 'w') #檔案開啟方式預設值'a',也可指定為'w'

logging.debug('debug message')

#之前設定的日誌級別為info,所以在之後的文件中,由於debug的級別低於info,所以不會顯示

logging模組的使用

coding utf 8 import os import time import logging import sys log dir1 os.path.join os.path.dirname os.path.dirname file logs today time.strftime y m d...

使用python的logging模組

一 從乙個使用場景開始 開發乙個日誌系統,既要把日誌輸出到控制台,還要寫入日誌檔案 import logging 建立乙個logger logger logging.getlogger mylogger logger.setlevel logging.debug 建立乙個handler,用於寫入日誌...

logging模組的簡單使用

import logging 建立乙個logger,如果引數為空則返回root logger logger logging.getlogger nick 設定logger日誌等級 logger.setlevel logging.debug 建立handler fh logging.filehandl...