首頁 後端開發 Python教學 python模組學習logging

python模組學習logging

Dec 17, 2016 pm 04:47 PM

1.簡單的將日誌印到螢幕

import logging

logging.debug('This is debug message')
logging.info('This is info message')
logging.warning(Thisessage's') wart logging.warning(Thisessage' )



螢幕上列印:
WARNING:root:This is warning message

預設情況下,logging將日誌列印到螢幕,日誌等級為WARNING;
等級值 WARNING > INFO > DEBUG > NOTSET,當然也可以自己定義日誌等級。

2.透過logging.basicConfig函數對日誌的輸出格式及方式做相關配置

import logging

logging.basicConfig(level=logging.DEBUG,
    name % line:%(lineno)d] %(levelname)s %(message)s',
               datefmt='%a, %d %b % ',
               filemode='w')
   
logging.debug('This is debug message')
logging.info('T.This) his p.


./myapp.log檔案內容為:
Sun, 24 May 2009 21:48:54 demo2.py[line:11] DEBUG This is debug message
Sun, 24 May 2009 21:48:54 demo2.py[ :12] INFO This is info message
Sun, 24 May 2009 21:48:54 demo2.py[line:13] WARNING This is warning message
日誌

logging.basicConfig函數各指定檔案filemode: 和file函數意義相同,指定日誌檔案的開啟模式,'w'或'a'
format: 指定輸出的格式和內容,format可以輸出很多有用信息,如上例所示:

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

%(levelname)s: 列印日誌等級名稱
%(pathname)s: 列印目前執行程式的路徑,其實就是sys.argv[0]
%(filename)s: 列印目前執行程式名稱
%(funcName)s: 列印日誌的目前函數
%(lineno)d: 列印日誌的目前行號
%(asctime)s: 列印日誌的時間
%(thread)d: 列印執行緒ID
%(threadName)s: 列印執行緒名稱
%(PRocess)d: 列印進程ID
%(message)s: 列印日誌訊息
datefmt: 指定時間格式,同time.strftime()
level: 設定日誌級別,預設為logging.WARNING
stream: 指定將日誌的輸出流,可以指定輸出到sys.stderr,sys.stdout或文件,預設輸出到sys.stderr,當stream和filename同時指定時,stream被忽略

3.將日誌同時輸出到文件和螢幕

import logging

logging.basicConfig(level=logging.DEBUG,

              logging.DEBUG,

              s format='%(asctime)s %:name)s format0%(asctime)s %:name)s format]s%)s[]s%)s[ ',

               datefmt='%a, %d %b %Y %H:%M:%S',
        filemode='w')######### ########################################################### ########################################定義一個StreamHandler,將INFO等級或更高的日誌資訊列印到標準錯誤,並將其新增至目前的日誌處理物件#console = logging.StreamHandler()
console.setLevel(logging.INFO)
formatter = logging.Formatter('%(name)-12s: % (levelname)-8s %(message)s')
console.setFormatter(formatter)
logging.getLogger('').addHandler(console)################## ########################################################### #############################


logging.debug('This is debug message')
logging.info('This is info message')
logging.warning('This is warning message')


螢幕上列印:
root         message

./myapp.log檔案中內容為:
Sun, 24 May 2009 21:48:54 demo2.py[line:11] DEBUG This is debug message
Sun, 24 May 2009 21:48:54 demo2.py[line:12] IN This is message
Sun, 24 May 2009 21:48:54 demo2.py[line:13] WARNING This is warning message


4.logging之日誌回滾

import loggingfrom logging.handlers import RotatingFileHandler########################################## ########################################################### ######定義一個RotatingFileHandler,最多備份5個日誌文件,每個日誌檔案最大10MRthandler = RotatingFileHandler('myapp.log', maxBytes=10*1024*1024,backupCount=5)
Rthandler.setLevel(logging .INFO)
formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
Rthandler.setFormatter(formatter)
logging.getLogger('').addHandler.setFormatter(formatter)
logging.getLogger('').addHandler(Rdler )################################################# ###############################################


從上例和本例可以看出,logging有一個日誌處理的主對象,其它處理方式都是透過addHandler加入的。

logging的幾種handle方式如下:

logging.StreamHandler: 日誌輸出到流,可以是sys.stderr、sys.stdout或檔案 logging.FileHandler: 日誌輸出到檔案

日誌回滾方式,實際使用時用RotatingFileHandler和TimedRotatingFileHandler logging.handlers.BaseRotatingHandler logging.handlers.RotatingFileHandler logging.handlers.TimedRotatingFileHandler

logging.handlers.SocketHandler: 遠端輸出日誌到TCP/ip sockets

logging.handlers.DatagramHandler: 遠端輸出日誌到UDP sockets

logging.handlers.SMTPHandler: 遠端輸出日誌到郵件地址

logging.handlers.SysLogHandler: 日誌輸出到syslog

logging.handlers.NTEventLogHandler: 遠端輸出日誌到Windows NT/2000/XP的事件日誌

logging.handlers.MemoryHandler: 日誌輸出到記憶體中的製定buffer

logging.handlers.HTTPHandler: 透過"GET"或"POST"遠端輸出到HTTP伺服器

 


由於StreamHandler和FileHandler是常用的日誌處理方式,所以直接包含在logging模組中,而其他方式則包含在logging.handlers模組中,

上述上述其它處理方式的使用請參見python2.5手冊!

5.通過logging.config模塊配置日誌


#logger.conf

############################### ################ [loggers]
keys=root,example01,example02

[logger_root]
level=DEBUG
handlers=hand01,hand02
level=DEBUG
handlers=hand01,hand02
level=DEBUG
handlers=hand01,hand02
hand[1] hand01,hand02
qualname=example01
propagate=0

[logger_example02]
handlers=hand01,hand03
qualname=example02##propagate=###
############################ [handlers]
keys=hand01,hand02,hand03

[handler_hand01]



class=StreamHandler
level=INFO
formatter=form02
args=(sys.stderr,)

[handler_hand02]class=FileHandler
level=DEBUG
formatter=form01
args=('myappargs>( handler_hand03]class=handlers.RotatingFileHandler
level=INFO
formatter=form02
args=('myapp.log', 'a', 10*1024*1024, 5)
############ ################################### [formatters]
keys=form01,form02

[formatter_form01]
format=%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s
datefmt=%a, %d %b %Y %H:%M:% S

[formatter_form02]
format=%(name)-12s: %(levelname)-8s %(message)s
datefmt=
import loggingimport logging.config
datefmt=
import loggingimport logging.config
datefmt=
import loggingimport logging.config
datefmt=
import loggingimport logging.config
datefmt=
importfile""
logger = logging.getLogger("example01")

logger.debug('This is debug message')
logger.info('This is info message')
logger.warning('This is warningin日誌。 info message')
logger.warning('This is warning message')

6.logging是線程安全的

 以上就是python模組學習logging的內容,更多相關文章請關注PHPwww. .cn)! 


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1325
25
PHP教程
1273
29
C# 教程
1252
24
Python內建logging怎麼使用 Python內建logging怎麼使用 May 10, 2023 am 10:55 AM

logging的主要功能提供日誌記錄的介面和眾多處理模組,供使用者儲存各種格式的日誌,幫助偵錯程式或記錄程式運行過程中的輸出資訊。 logging日誌等級logging日誌等級分為五個等級,優先權從高到低依序是:**CRITICAL;**程式嚴重錯誤**ERROR;**程式錯誤/部分功能錯誤**WARNING;**程式有發生錯誤的可能**INFO;**程式正常運作時的資訊DEBUG程式偵錯資訊預設的日誌的記錄等級為WARNING,即當日誌的等級大於取得等於WARNING時才會被記錄。一般常用的記錄等

如何解決Python的模組無法讀取錯誤? 如何解決Python的模組無法讀取錯誤? Jun 24, 2023 am 11:48 AM

在編寫Python程式碼時,我們常常需要導入外部模組。但是有時候會出現模組無法讀取的錯誤,阻礙了我們的程式設計進程。這些錯誤一般有以下幾種情況和解決方法。模組未安裝或未新增到系統路徑中當我們導入模組時,Python會在系統路徑中尋找該模組。如果該模組未安裝或未新增至系統路徑中,就會出現無法讀取的錯誤。解決方法如下:(1)確認模組是否已安裝。我們可以在命令列介面輸

怎麼使用python的logging函式庫 怎麼使用python的logging函式庫 May 16, 2023 pm 06:07 PM

logging是Python標準庫中用來記錄日誌的模組。它提供了一種簡單但靈活的方法來記錄程式中的事件,以便稍後進行偵錯和分析。使用logging庫的基本步驟如下:導入logging庫importlogging配置日誌記錄器logging.basicConfig(level=logging.INFO,format='%(asctime)s-%(name)s-%(levelname)s-%(message )s')上面的程式碼配置了一個基本的日誌記錄器,指定了日誌記錄等級

java底層JDK Logging日誌模組怎麼處理 java底層JDK Logging日誌模組怎麼處理 May 10, 2023 pm 02:55 PM

從範例開始JDKLogging的使用很簡單,如下程式碼所示,先使用Logger類別的靜態方法getLogger就可以取得到一個logger,然後在任何地方都可以透過取得到的logger進行日誌輸入。例如類似logger.info("Mainrunning.")的呼叫。 packagecom.bes.logging;importjava.util.logging.Level;importjava.util.logging.Logger;publicclassLoggerTest{pr

如何解決Python的模組未安裝錯誤? 如何解決Python的模組未安裝錯誤? Jun 25, 2023 pm 05:52 PM

Python是一門功能強大的程式語言,常用於資料分析、機器學習和Web開發等領域。在使用Python的過程中,我們經常需要使用各種第三方模組來擴充Python的功能。然而,如果在使用Python時遇到「模組未安裝」的錯誤,這會影響我們的工作效率和開發進度。本文將介紹如何解決Python的模組未安裝錯誤。安裝pippip是Python自備的套件管理器,可以方便地

一篇文章帶你去搞定Python中logging模組 一篇文章帶你去搞定Python中logging模組 Jul 25, 2023 pm 02:04 PM

本文以Pythonl基礎為例,主要介紹了logging模組的基礎使用方法,以及在現實應用上遇到的問題,進行了詳細的解答。

Python中的logging模組如何使用 Python中的logging模組如何使用 May 12, 2023 pm 06:10 PM

一、低配logging日誌總共分為以下五個級別,這個五個級別自下而上進行匹配debug-->info-->warning-->error-->critical,預設最低級別為warning級別。 1.v1importlogginglogging.debug('調試資訊')logging.info('正常資訊')logging.warning('警告訊息')logging.erro

Python Logging 模組的最佳實踐:編寫乾淨、可維護的程式碼 Python Logging 模組的最佳實踐:編寫乾淨、可維護的程式碼 Feb 21, 2024 am 09:33 AM

日誌等級日誌等級決定了哪些訊息會輸出到日誌。 pythonLogging模組提供了6個日誌等級(從低到高):DEBUGINFOWARNINGERRORCRITICALFATAL通常,建議使用以下等級:DEBUG:用於調試訊息,僅在開發階段使用INFO:用於常規訊息,記錄系統狀態和操作WARNING:使用於潛在的問題,可能導致問題但不會立即中斷系統ERROR:用於錯誤和異常,需要關注和解決CRITICAL:用於嚴重錯誤,會導致系統中斷日誌格式日誌格式決定了日誌訊息中包含的資訊。 PythonLoggin

See all articles