搜尋
首頁後端開發Python教學python模組學習logging
python模組學習loggingDec 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
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)确认模块是否已经安装。我们可以在命令行界面输

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中logging模块一篇文章带你搞定Python中logging模块Jul 25, 2023 pm 02:04 PM

本文以Pythonl基础为例,主要介绍了logging模块的基础使用方法,以及在现实应用中遇到的问题,进行了详细的解答。

Python中的模块是什么?Python中的模块是什么?Jun 05, 2023 pm 01:51 PM

Python是一种非常流行的编程语言,很多人都在学习和使用它。而在Python中,模块是一个非常重要的概念。那么什么是Python中的模块呢?为什么我们需要使用模块?下面我们来详细解答这些问题。一、什么是Python中的模块?在Python中,每个文件都可以看作是一个模块。模块中包含了相关函数和数据,它们可以在其它的Python程序中被导入并使用。Pytho

怎么使用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')上面的代码配置了一个基本的日志记录器,指定了日志记录级

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的模块未安装错误?如何解决Python的模块未安装错误?Jun 25, 2023 pm 05:52 PM

Python是一门功能强大的编程语言,常用于数据分析、机器学习和Web开发等领域。在使用Python的过程中,我们经常需要使用各种第三方模块来扩展Python的功能。然而,如果在使用Python时遇到“模块未安装”的错误,这会影响我们的工作效率和开发进度。本文将介绍如何解决Python的模块未安装错误。安装pippip是Python自带的包管理器,可以方便地

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器