Python logging日誌模塊 常用的功能介紹

2021-02-21 小強測試系列

1、logging是什麼?

logging是python自帶的一個日誌模塊

2、logging作用是什麼?

3、logging默認日誌級別: NOTSET、DEBUG、INFO、WARNING、ERROR、CRITICAL;測試使用INFO、ERROR即可。

4、日誌輸出的管理器

示例:

輸出內容為:

默認輸出warnning及以上級別的日誌,root是日誌收集器的名字。

5、自定義日誌

輸出內容為:

日誌文件輸出為:

6、日誌格式 formatter

日誌記錄的最終輸出格式,formatter對象定義了最終的log信息的順序、結構和內容,規定了日誌輸出按照什麼樣的格式,默認的時間格式為 %Y-%m-%d %H:%M:%S常用格式:formatter=logging.Formatter("%(asctime)s-%(levelname)s-%(filename)s-%(name)s-日誌信息:%(massage)s")

輸出日誌格式含義:

名稱說明-%(name)s-數字形式的日誌級別%(levelname)s文本形式的日誌級別%(levelno)s數字形式的日誌級別%(pathname)s調用日誌輸出函數的模塊的完整路徑名,可能沒有%(filename)s調用日誌輸出函數的模塊的文件名%(module)s調用日誌輸出函數的模塊名%(funcName)s調用日誌輸出函數的函數名%(lineno)d調用日誌輸出函數的語句所在的代碼行%(created)f當前時間,用UNIX標準的表示時間的浮 點數表示%(relativeCreated)d輸出日誌信息時的,自Logger創建以 來的毫秒數%(asctime)s字符串形式的當前時間。默認格式是 「2003-07-08 16:49:45,896」。逗號後面的是毫秒%(thread)d線程ID。可能沒有%(threadName)s線程名。可能沒有%(process)d進程ID。可能沒有%(message)s用戶輸出的消息

7、寫一個日誌類

import loggingclassMyLog():

   defmylog(self,msg,level):
       # 定義一個日誌收集器my_logger
       my_logger = logging.getLogger('python12')

       # 設置收集的級別,不設置的話,默認收集warning及以上級別的日誌
       my_logger.setLevel('DEBUG')

       # 設定日誌輸出格式
    formatter = logging.Formatter('%(asctime)s-%(levelname)s-%(filename)s-%(name)s-日誌信息:%(message)s')

       # 創建我們自己的輸出渠道(輸出也要設定級別,否則也默認輸出warning及以上級別的日誌)
       ch = logging.StreamHandler()  # 默認輸出到控制臺
       ch.setLevel('DEBUG')
       ch.setFormatter(formatter)
       fh = logging.FileHandler('20200721log.txt')
       fh.setLevel('DEBUG')
       fh.setFormatter(formatter)

       # 將收集和輸出對接,指定輸出渠道
       my_logger.addHandler(ch)
       my_logger.addHandler(fh)

       #收集日誌
       if level =='DEBUG':
           my_logger.debug(msg)
       elif level =='INFO':
           my_logger.info(msg)
       elif level =='WARNING':
           my_logger.warning(msg)
       elif level =='ERROR':
           my_logger.error(msg)
       else:
           my_logger.critical(msg)

       #關閉渠道(日誌收集器),否則會重複收集、重複輸出
       my_logger.removeHandler(ch)
       my_logger.removeHandler(fh)

   defdebug(self,msg):
       self.mylog(msg,'DEBUG')

   definfo(self, msg):
       self.mylog(msg,"INFO")

   defwarning(self, msg):
       self.mylog(msg,"WARNING")

   deferror(self, msg):
       self.mylog(msg,"ERROR")

   defcritical(self, msg):
       self.mylog(msg,"CRITICAL")if __name__ =='__main__':
   my_logger = MyLog()
   my_logger.debug('haha')
   my_logger.info('enen')

調用日誌類:

from my_log import MyLog
my_logger = MyLog()

相關焦點

  • Python——logging日誌模塊簡介
    二.logging簡介python內置庫,主要用于格式化控制輸出至文件,郵件,終端等等,該模塊提供了很多功能和靈活性。三.參考文獻:python官方文檔logging模塊:https://docs.python.org/3.8/howto/logging.html#四.日誌級別級別說明DEBUG詳細信息,通常僅在診斷問題時才需要。INFO確認一切正常。WARNING表示發生了意外情況,或者表示在不久的將來出現了某些問題(例如「磁碟空間不足」)。
  • python日誌記錄--Logging模塊
    3、Logging工作流程1.logging模塊使用過程1.第一次導入logging模塊或使用reload函數重新導入logging模塊,logging模塊中的代碼將被執行,這個過程中將產生logging日誌系統的默認配置。2.自定義配置(可選)。
  • python logging 日誌模塊以及多進程日誌
    logging 的介紹加深理解。更主要是 討論在多進程環境下如何使用logging 來輸出日誌, 如何安全地切分日誌文件。1. logging日誌模塊介紹python的logging模塊提供了靈活的標準模塊,使得任何Python程序都可以使用這個第三方模塊來實現日誌記錄。
  • python日誌系統-logging
    在之前測試運維試聽課程中,芒果給大家介紹了python日誌系統-logging的使用,這裡我們來做個小總結。日誌是一種可以追蹤某些軟體運行時所發生事件的方法。軟體開發人員可以向他們的代碼中調用日誌記錄相關的方法來表明發生了某些事情。一個事件可以用一個可包含可選變量數據的消息來描述。
  • python中logging模塊詳解
    為什麼需要logging模塊用python寫代碼的時候,想看哪裡的輸出直接print就可以了。
  • 深入淺出Python中的logging模塊
    簡說Python推薦來源:Python之王  作者:小senOne old watch, like brief python 大家好,我是老表~logging模塊是Python內置的標準模塊 = "%(asctime)s----%(name)s----%(levelname)s----%(message)s"#level 配置為 WARNING 信息,即只輸出 WARNING 級別及其以上的信息,# format指定了 format 格式的字符串,包括asctime運行時間 name模塊名稱、levelname(日誌級別)message (日誌內容)logging.basicConfig
  • 第32天:Python logging 模塊詳解
    程序開發過程中,很多程序都有記錄日誌的需求,並且日誌包含的信息有正常的程序訪問日誌還可能有錯誤、警告等信息輸出,Python 的 logging 模塊提供了標準的日誌接口,可以通過它存儲各種格式的日誌,日誌記錄提供了一組便利功能,用於簡單的日誌記錄用法。日誌記錄函數以它們用來跟蹤的事件的級別或嚴重性命名。
  • Python Logging 模塊完全解讀
    你也可以在 logging 中包含 traceback 信息。不管是小項目還是大項目,都推薦在 Python 程序中使用 logging。本文將簡單清晰地介紹如何使用 logging 模塊。為什麼使用 logging?當你運行一個 Python 腳本時,你可能想要知道腳本的哪個部分在執行,並且檢視變量的當前值。通常,可以只使用 print() 列印出你想要的信息。
  • Python模塊學習 ---- logging模塊
    ;日誌輸出到文件BaseRotatingHandler:logging.handlers.BaseRotatingHandler;基本的日誌回滾方式RotatingHandler:logging.handlers.RotatingHandler;日誌回滾方式,支持日誌文件最大數量和日誌文件回滾TimeRotatingHandler:logging.handlers.TimeRotatingHandler
  • 二十八、深入淺出Python中的logging模塊
    logging模塊是Python內置的標準模塊,主要用於輸出腳本運行日誌,可以設置輸出日誌的等級、日誌保存路徑等。 = "%(asctime)s----%(name)s----%(levelname)s----%(message)s"#level 配置為 WARNING 信息,即只輸出 WARNING 級別及其以上的信息,# format指定了 format 格式的字符串,包括asctime運行時間 name模塊名稱、levelname(日誌級別)message (日誌內容)logging.basicConfig
  • Django日誌logging設置
    但是logging模塊也是存在缺陷的,logging模塊是線程安全的,當如果使用uwsgi部署django服務的時候,就會由於多進程導致日誌存儲混亂。不過,這個是多進程刪除、寫入文件導致的,我們先不考慮,先來看看在django服務如果使用logging模塊。
  • python中的logging模塊居然這麼好用!
    一、為什麼我們需要引用logging模塊?
  • 【連載電子書六】Python常用模塊
    模塊hashilib模塊序列化-json模塊序列化-pickle模塊正則表達式re模塊paramiko logging模塊模塊和包模塊其實就是我們把一些公用的功能代碼寫入在一個py文件中.  import  模塊2. from 模塊 import 功能本節我們主要是學習和了解一些python的內置模塊的使用1. randompython中專門用來產生隨機數的一個模塊import random# 隨機數(0-1)a = random.random()
  • Python Logging 指南
    多個模塊中的日誌記錄如果您的程序包含多個模塊,這裡有一個如何組織日誌記錄的示例:# myapp.pyimport loggingimport mylibdef main(): logging.basicConfig(filename='myapp.log', level=logging.INFO) logging.info
  • 有了它,可以把Python裡Logging模塊扔掉了!
    中寫日誌,使用的是 Python 自帶的 logging 模塊,要實現既在終端輸出,又能寫文件,並且日誌文件還能 rotate ,代碼需要十多行:import loggingfrom logging.handlers import RotatingFileHandleros.makedirs('Logs', exists_ok=True)logger = log
  • 4、Python接口自動化系列之logging模塊的使用(一)
    很多小夥伴不會看日誌,其實看日誌是測試人員的基本功,日誌中的錯誤信息都什麼意思呢,日誌級別怎麼定義的的呢,本篇就來學習一下日誌模塊logging。1、首先我們看一下Python自帶的logging模塊import logginglogging.basicConfig(level='INFO')logging.NOTSETlogging.debug("我是debug")logging.info("我是info")logging.warning("
  • Python os模塊 常用的功能介紹
    Python os 模塊提供了非常豐富的方法用來處理文件和目錄。使用者不需要關注什麼作業系統就可以對文件進行操作。
  • python 基礎 — 常用模塊
    python 的 tempstamp 是一個浮點數。\test>python test.py 1 2 3['test.py', '1', '2', '3']2、sys.path返回模塊的搜索路徑,從當前文件所在路徑開始搜索>>> sys.path['', 'D:\\Software\\python36.zip', 'D:\\Software\\DLLs', 'D
  • Python語言學習之logging模塊
    函數各參數:filename:指定日誌文件名;filemode:和file函數意義相同,指定日誌文件的打開模式,'w'或者'a';format:指定輸出的格式和內容,format可以輸出很多有用的信息,%(levelno)s:列印日誌級別的數值%(levelname)s:列印日誌級別的名稱%(pathname)s:列印當前執行程序的路徑,其實就是sys.argv
  • logging模塊簡單使用&多進程下使用
    python自動了logging模塊,可以方便的記錄和列印日誌大致的思路import logging# 定義日誌輸出格式formattler = '%(levelname)s - %(name# 不設置的話 只能發送 >= warning級別的日誌logger = logging.getLogger()logger.setLevel(logging.DEBUG)# 設置handleer日誌處理器,日誌具體怎麼處理都在日誌處理器裡面定義# SteamHandler 流處理器,輸出到控制臺,輸出方式為stdout#   StreamHandler