国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

python中logging生成日志模塊的使用

Rango / 2202人閱讀

摘要:用于便捷記錄日志且線程安全的模塊日志級別日志一共分成個等級,從低到高分別是。詳細的信息通常只出現在診斷問題上確認一切按預期運行一個跡象表明一些意想不到的事情發生了或表明一些問題在不久的將來例如。這個等級,也分別對應種打日志的方法。

用于便捷記錄日志且線程安全的模塊 1、日志級別
日志一共分成5個等級,從低到高分別是:DEBUG INFO WARNING ERROR CRITICAL。

DEBUG:詳細的信息,通常只出現在診斷問題上

INFO:確認一切按預期運行

WARNING:一個跡象表明,一些意想不到的事情發生了,或表明一些問題在不久的將來(例如。磁盤空間低”)。這個軟件還能按預期工作。

ERROR:更嚴重的問題,軟件沒能執行一些功能

CRITICAL:一個嚴重的錯誤,這表明程序本身可能無法繼續運行。

這5個等級,也分別對應5種打日志的方法: debug 、info 、warning 、error 、critical。
默認的是WARNING,當在WARNING或之上時才被跟蹤。

2、日志輸出
有兩種方式記錄跟蹤,一種輸出控制臺,另一種是記錄到文件中,如日志文件。
3、注意問題
用Python的logging模塊記錄日志時,遇到了重復記錄日志的問題,第一條記錄寫一次,第二條記錄寫兩次,第三條記錄寫三次。。。這樣記日志可不行。
原因:沒有移除handler?
解決:在日志記錄完之后removeHandler
使用方法 1、單日志文件

創建一個日志模塊.py的文件

import logging
  
  
logging.basicConfig(filename="log.log",
                    format="%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s",
                    datefmt="%Y-%m-%d %H:%M:%S %p",
                    level=10)
  
logging.debug("debug")
logging.info("info")
logging.warning("warning")
logging.error("error")
logging.critical("critical")
logging.log(10,"log")

運行:

從運行結果來看,創建了一個log.log日志文件,時間是自動生產的,module是我們當前的python代碼文件名。

日志等級:

CRITICAL = 50
FATAL = CRITICAL
ERROR = 40
WARNING = 30
WARN = WARNING
INFO = 20
DEBUG = 10
NOTSET = 0

注:只有【當前寫等級】大于【日志等級】時,日志文件才被記錄。
日志記錄格式:

%(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    用戶輸出的消息
2、多文件日志

對于上述記錄日志的功能,只能將日志記錄在單文件中,如果想要設置多個日志文件,logging.basicConfig將無法完成,需要自定義文件和日志操作對象。

import logging

# 定義文件
file1 = logging.FileHandler(filename="l1.log", mode="a", encoding="utf-8")
fmt = logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s", datefmt="%Y-%m-%d %H:%M:%S")
file1.setFormatter(fmt)

file2 = logging.FileHandler(filename="l2.log", mode="a", encoding="utf-8")
fmt = logging.Formatter()
file2.setFormatter(fmt)

# 定義日志
logger1 = logging.Logger(name="這里是name", level=logging.ERROR)
logger1.addHandler(file1)
logger1.addHandler(file2)
# logger1.removeHandler(file1)
# logger1.removeHandler(file2)

# 寫日志
logger1.error(msg="這里是msg111")
logger1.log(msg="這里是msg222", level=50)


# 定義文件
file3 = logging.FileHandler(filename="l3.log", mode="a", encoding="utf-8")
fmt = logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s", datefmt="%Y-%m-%d %H:%M:%S")
file3.setFormatter(fmt)

# 定義日志
logger2 = logging.Logger(name="這里是name222222", level=logging.INFO)
logger2.addHandler(file3)

# 寫日志
logger2.info("這里是msg333333")

運行:

如上述創建的兩個日志對象

當使用【logger1】寫日志時,會將相應的內容寫入 l1.log 和 l2.log 文件中

當使用【logger2】寫日志時,會將相應的內容寫入 l3.log 文件中

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41635.html

相關文章

  • 基于Selenium + Pythonweb自動化框架

    摘要:一什么是是一個基于瀏覽器的自動化工具,她提供了一種跨平臺跨瀏覽器的端到端的自動化解決方案。模塊主要用來記錄用例執行情況,以便于高效的調查用例失敗信息以及追蹤用例執行情況。測試用例倉庫用例倉庫主要用來組織自動化測試用例。 一、什么是Selenium? Selenium是一個基于瀏覽器的自動化工具,她提供了一種跨平臺、跨瀏覽器的端到端的web自動化解決方案。Selenium主要包括三部分:...

    sunny5541 評論0 收藏0
  • 使用Python解析nginx日志文件

    摘要:項目的一個需求是解析的日志文件。項目中已經按照業務規則對日志文件進行了處理命名規則如下并且所有的日志文件存放在統一路徑下。模塊使用緩存,所以會耗費內存,耗費量與要解析的文件相關。剩下的工作就是根據業務需要,對獲得的基本信息進行處理。 項目的一個需求是解析nginx的日志文件。 簡單的整理如下: 日志規則描述 首先要明確自己的Nginx的日志格式,這里采用默認Nginx日志格式: ...

    Baaaan 評論0 收藏0
  • 使用Python解析nginx日志文件

    摘要:項目的一個需求是解析的日志文件。項目中已經按照業務規則對日志文件進行了處理命名規則如下并且所有的日志文件存放在統一路徑下。模塊使用緩存,所以會耗費內存,耗費量與要解析的文件相關。剩下的工作就是根據業務需要,對獲得的基本信息進行處理。 項目的一個需求是解析nginx的日志文件。 簡單的整理如下: 日志規則描述 首先要明確自己的Nginx的日志格式,這里采用默認Nginx日志格式: ...

    bawn 評論0 收藏0
  • pythonlogging 模塊淺析

    摘要:的繼承關系使用做日志輸出時,首先我們需要一個創建一個對象。再設計多級別的日志系統時,尤其要注意這點。當然,這樣做其實是有悖于的本意的。是什么是一個程序內全局唯一的,所有對象的祖先。因此,直接修改是危險的。 0x00 python logging的繼承關系 使用python做日志輸出時,首先我們需要一個創建一個Logger對象:import logging; logger = log...

    cooxer 評論0 收藏0
  • 關于pythonlogging總結

    摘要:確認一切按預期運行。表明發生了一些意外,或者不久的將來會發生問題如磁盤滿了。由于更嚴重的問題,軟件已不能執行一些功能了。嚴重錯誤,表明軟件已不能繼續運行了。對于不能獲取的名稱,則記錄到模塊。 最近在寫一些python腳本,總是使用print來打印信息感覺很low,所以抽空研究了一下python的logging庫,來優雅的來打印和記錄日志: 一、簡單的將日志打印到屏幕: import l...

    kaka 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<