day6 subprocess模塊、logging模塊


    logging模塊

    很多程序都有記錄日志的需求,並且日志中包含的信息即有正常的程序訪問日志,還可能有錯誤、警告等信息輸出,python的logging模塊提供了標准的日志接口,你可以通過它存儲各種格式的日志,logging的日志可以分為 debug()info()warning()error() and critical() 5個級別,下面我們看一下怎么用:

---恢復內容結束---

    logging模塊

    很多程序都有記錄日志的需求,並且日志中包含的信息即有正常的程序訪問日志,還可能有錯誤、警告等信息輸出,python的logging模塊提供了標准的日志接口,你可以通過它存儲各種格式的日志,logging的日志可以分為 debug()info()warning()error() and critical() 5個級別,下面我們看一下怎么用:

%(name)s Logger的名字
%(levelno)s

數字形式的日志級別

%(levelname)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 用戶輸出的消息

    想給日志文件加上日期,如下所示:

    import logging
    """basicConfig()是設置日期格式的形式,level是日期的等級,datafmt是日期的格式"""
  logging.basicConfig(format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p',level=logging.DEBUG)
  logging.warning('is when this event was logged.')

  logging.basicConfig(format="%(asctime)s %(message)s",datefmt="%m/%d/%Y %I:%M:%S %p",level=logging.DEBUG)
  logging.debug("I love python")

    運行結果如下:

    05/30/2017 06:40:33 AM is when this event was logged.
  05/30/2017 06:40:33 AM I love python

    如果想同時把log打印在屏幕和文件日志里,就需要了解一點復雜的知識了

    Python 使用logging模塊記錄日志涉及四個主要類,使用官方文檔中的概括最為合適:

    (1)logger提供了應用程序可以直接使用的接口

    (2)handler將(logger創建的)日志記錄發送到合適的目的輸出

    (3)filter提供了細度設備來決定輸出哪條日志記錄

    (4)formatter決定日志記錄的最終輸出格式


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com