python基礎 logging模組

2022-07-03 09:33:08 字數 4262 閱讀 4683

loggging日誌

python的logging模組提供了通用的日誌系統.這個模組提供不同的日誌級別,並可以採用不同的方式記錄日誌

注意:python檔案的命名是有講究的,不要把檔名命名的和模組名字一樣,這樣會一直報錯,比如你這裡如果命名為logging.py就會一直報錯

logging.basiccongfig函式各引數:

1.filename  指定日誌檔名

2.filemode  和file函式意義相同,指定日誌檔案的開啟模式,'w'和'a'

3.format  指定輸出的格式和內容,format可以輸出很多有用資訊:

%(levelno)s  列印日誌級別的數值

%(levelname)s  列印日誌級別名稱

%(pathname)s  列印當前執行程式的路徑

%(filename)s    列印當前執行名

%(funcname)s    列印日誌的當前函式

%(lineno)d      列印日誌的當前行號

%(lasctime)s      列印日誌的時間

%(thread)d      列印執行緒id

%(threadname)s    列印執行緒名稱

%(process)d      列印程序id

%(message)s      列印日誌資訊

4.level  設定統一日誌處理器的級別,預設為logging.warning

日誌資訊,輸出在控制台

import

logging

import

os'''

logging.basicconfig:日誌的統一處理器,對日誌的輸出格式和方式做配置

日誌級別等級critical > error > warnig > info >debug,

'''#

log_file = os.path.join(os.getcwd(),'wlog.log')

#日誌格式資訊: 日誌時間 當前執行名 當前行號 日誌級別名稱 列印日誌資訊

log_format = "

%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s: %(message)s

"'''

level設定本級別以及以上級別的才會列印.這裡注意大小寫!

如果你不寫filename和filemode引數則會預設列印到console

'''#

level:日誌級別 (.)後面是大寫, format:日誌格式

logging.basicconfig(level = logging.warning,format =log_format)

#logging.basicconfig(level = logging.warning,format = log_format,filename = log_file,filemode = 'w')

#列印日誌,

#級別規則

#warning級別,可以打出來critical > error > warnig級別的日誌

logging.warning('

warning message')

#error級別

logging.error('

error message')

logging.debug(

'debug message

')

只在控制台輸出,結果:

2017-06-18 23:04:55,444 日誌.py [line:26] warning: warning message

2017-06-18 23:04:55,444 日誌.py [line:28] error: error message

日誌資訊,輸出在指定位置的檔案中

import

logging

import

os'''

logging.basicconfig:日誌的統一處理器,對日誌的輸出格式和方式做配置

日誌級別等級critical > error > warnig > info >debug,

'''#

os的拼接,記錄檔案的路徑,os取的當前路徑,也可以自己設定位置,wlog.log檔名稱

log_file = os.path.join(os.getcwd(),'

wlog.log')

print

(os.getcwd())

#日誌格式資訊: 日誌時間 當前執行名 當前行號 日誌級別名稱 列印日誌資訊

log_format = "

%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s: %(message)s

"'''

level設定本級別以及以上級別的才會列印.這裡注意大小寫!

如果你不寫filename和filemode引數則會預設列印到console

'''#

level:日誌級別 (.)後面是大寫, format:日誌格式

#logging.basicconfig(level = logging.warning,format = log_format)

logging.basicconfig(level = logging.warning,format = log_format,filename = log_file,filemode = 'w'

)#列印日誌,

#級別規則

#warning級別,可以打出來critical > error > warnig級別的日誌

logging.warning('

warning message')

#error級別

logging.error('

error message')

logging.debug(

'debug message

')

只在指定位置的輸出日誌檔案,結果:

同時在控制台和指定路徑的檔案中輸出日誌資訊

import

logging

'''實現,讓日誌資訊既在控制台,也在指定路徑的檔案中輸出

'''#

日誌級別等級 critical > error > warning > info > debug

#建立乙個logger,頂級的根目錄getlogger,有兩個分支,乙個是filehander,乙個是streamhandler

logger = logging.getlogger('

mylogger')

logger.setlevel(logging.info)

#建立乙個handler,將log寫入檔案

fh = logging.filehandler('

d:\python workspace\wlog_console.log

',mode = 'w'

)fh.setlevel(logging.info)

#再建立乙個handler,將log輸出到控制台

ch =logging.streamhandler()

ch.setlevel(logging.info)

#設定輸出格式

log_format = "

%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s: %(message)s"#

把格式新增進來

formatter =logging.formatter(log_format)

fh.setformatter(formatter)

ch.setformatter(formatter)

#把handler新增到logger裡,其實你理解為匯報給大領導即可

logger.addhandler(fh)

logger.addhandler(ch)

logger.error(

'下雨了

')logger.info('打雷了')

logger.debug('收衣服了')

結果:控制台輸出:

2017-06-19 00:14:01,182 日誌2.py [line:32] error: 下雨了

2017-06-19 00:14:01,182 日誌2.py [line:33] info: 打雷了

檔案中輸出:

Python基礎 logging模組

先是基礎配置 import logging logging.basicconfig filename level logging.debug 配置好了之後產生的一切日誌都會記錄在filename.log當中,具體用法舉例 logging.info logging some infomation lo...

python基礎 Logging模組

log 日誌 基礎知識概覽 日誌是什麼?日誌 logging 是一種可追蹤 track 某些軟體執行時所發生事件的方法。軟體開發人員 可在他們的 中呼叫日誌記錄相關的方法來表明發生了某些事件。通過乙個描述性的訊息來描述這個事件,該訊息能夠可選地包含可變資料。而 事件有重要性的概念,重要性被稱為 嚴重...

python基礎 日誌logging模組

在一般情況下,日誌作用相當於print的作用,用顯示程式執行當中的一些資訊,如當前迭代次數等,但是有時候我們會讓程式在後台執行,此時print函式將失去作用,我們需要將程式執行的資訊存放在檔案中,最長見的是linux中nohup.out檔案,事後我們可以從日誌檔案中檢視程式執行的一些資訊 從低到高為...