日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

logging.basicConfig函数

發布時間:2023/11/28 生活经验 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 logging.basicConfig函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?在UI自動化應用中,經常會出錯,打log就是一個很重要的環節,python的logging.basicConfig函數?真是既方便,又簡單,每次粘貼到用例前,就可以打log了。?

? ? ? ??logging模塊是Python內置的標準模塊,主要用于輸出運行日志,可以設置輸出日志的等級、日志保存路徑、日志文件回滾等。

相比print,具備如下優點:
? ? ? ? 可以通過設置不同的日志等級,在release版本中只輸出重要信息,而不必顯示大量的調試信息;
print將所有信息都輸出到標準輸出中,嚴重影響開發者從標準輸出中查看其它數據;logging則可以由開發者決定將信息輸出到什么地方,以及怎么輸出;

在python中,logging由logger,handler,filter,formater四個部分組成:

? ? ? ? logger是提供我們記錄日志的方法;handler是讓我們選擇日志的輸出地方,如:控制臺,文件,郵件發送等,一個logger添加多個handler;filter是給用戶提供更加細粒度的控制日志的輸出內容;formater用戶格式化輸出日志的信息。


python中配置logging有三種方式

第一種:基礎配置,logging.basicConfig(filename="config.log",filemode="w",format="%(asctime)s-%(name)s-%(levelname)s-%(message)s",level=logging.INFO)。
第二種:使用配置文件的方式配置logging,使用fileConfig(filename,defaults=None,disable_existing_loggers=Ture )函數來讀取配置文件。
第三種:使用一個字典方式來寫配置信息,然后使用dictConfig(dict,defaults=None, disable_existing_loggers=Ture )函數來瓦按成logging的配置.


一 、level

日志一共分成5個等級,從低到高分別是:DEBUG ,INFO ,WARNING ,ERROR, CRITICAL。
DEBUG:詳細的信息,通常只出現在診斷問題上
INFO:確認一切按預期運行
WARNING:一個跡象表明,一些意想不到的事情發生了,或表明一些問題在不久的將來(例如。磁盤空間低”)。這個軟件還能按預期工作。
ERROR:更嚴重的問題,軟件沒能執行一些功能
CRITICAL:一個嚴重的錯誤,這表明程序本身可能無法繼續運行
這5個等級,也分別對應5種打日志的方法: debug 、info 、warning 、error 、critical。默認的是WARNING,當在WARNING或之上時才被跟蹤。

二、日志輸出:可以輸出在控制臺和文件,我選擇的是輸出在文件

StreamHandler:logging.StreamHandler;日志輸出到流,可以是sys.stderr,sys.stdout或者文件
FileHandler:logging.FileHandler;日志輸出到文件
BaseRotatingHandler:logging.handlers.BaseRotatingHandler;基本的日志回滾方式

RotatingHandler:logging.handlers.RotatingHandler;日志回滾方式,支持日志文件最大數量和日志文件回滾

日志回滾的意思為:比如日志文件是chat.log,當chat.log達到指定的大小之后,RotatingFileHandler自動把文件改名為chat.log.1。不過,如果chat.log.1已經存在,會先把chat.log.1重命名為chat.log.2。最后重新創建 chat.log,繼續輸出日志信息。【這樣保證了chat.log里面是最新的日志】

TimeRotatingHandler:logging.handlers.TimeRotatingHandler;日志回滾方式,在一定時間區域內回滾日志文件
SocketHandler:logging.handlers.SocketHandler;遠程輸出日志到TCP/IP sockets
DatagramHandler:logging.handlers.DatagramHandler;遠程輸出日志到UDP sockets
SMTPHandler:logging.handlers.SMTPHandler;遠程輸出日志到郵件地址
SysLogHandler:logging.handlers.SysLogHandler;日志輸出到syslog
NTEventLogHandler:logging.handlers.NTEventLogHandler;遠程輸出日志到Windows NT/2000/XP的事件日志
MemoryHandler:logging.handlers.MemoryHandler;日志輸出到內存中的指定buffer
HTTPHandler:logging.handlers.HTTPHandler;通過"GET"或者"POST"遠程輸出到HTTP服務器


三、日志格式說明


logging.basicConfig函數中,可以指定日志的輸出格式format,這個參數可以輸出很多有用的信息,如上例所示:

》》logging.basicConfig函數各參數:

filename: 指定日志文件名
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被忽略

》》logging打印信息函數:

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

?

我在工作中給的常用格式在前面已經看到了。就是:

format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s'

這個格式可以輸出日志的打印時間,是哪個模塊輸出的,輸出的日志級別是什么,以及輸入的日志內容。

?

實例代碼:

  1. # 初始化日志對象
  2. logging.basicConfig(
  3. # 日志級別
  4. level = logging.INFO,
  5. # 日志格式
  6. # 時間、代碼所在文件名、代碼行號、日志級別名字、日志信息
  7. format = '%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
  8. # 打印日志的時間
  9. datefmt = '%a, %d %b %Y %H:%M:%S',
  10. # 日志文件存放的目錄(目錄必須存在)及日志文件名
  11. filename = 'd:/report.log',
  12. # 打開日志文件的方式
  13. filemode = 'w'
  14. )

---------------------?
作者:echo6120?
來源:CSDN?
原文:https://blog.csdn.net/qq_30758629/article/details/80840230?

總結

以上是生活随笔為你收集整理的logging.basicConfig函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。