成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

python中l(wèi)ogging生成日志模塊的使用

Rango / 2208人閱讀

摘要:用于便捷記錄日志且線程安全的模塊日志級(jí)別日志一共分成個(gè)等級(jí),從低到高分別是。詳細(xì)的信息通常只出現(xiàn)在診斷問(wèn)題上確認(rèn)一切按預(yù)期運(yùn)行一個(gè)跡象表明一些意想不到的事情發(fā)生了或表明一些問(wèn)題在不久的將來(lái)例如。這個(gè)等級(jí),也分別對(duì)應(yīng)種打日志的方法。

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

DEBUG:詳細(xì)的信息,通常只出現(xiàn)在診斷問(wèn)題上

INFO:確認(rèn)一切按預(yù)期運(yùn)行

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

ERROR:更嚴(yán)重的問(wèn)題,軟件沒(méi)能執(zhí)行一些功能

CRITICAL:一個(gè)嚴(yán)重的錯(cuò)誤,這表明程序本身可能無(wú)法繼續(xù)運(yùn)行。

這5個(gè)等級(jí),也分別對(duì)應(yīng)5種打日志的方法: debug 、info 、warning 、error 、critical。
默認(rèn)的是WARNING,當(dāng)在WARNING或之上時(shí)才被跟蹤。

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

創(chuàng)建一個(gè)日志模塊.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")

運(yùn)行:

從運(yùn)行結(jié)果來(lái)看,創(chuàng)建了一個(gè)log.log日志文件,時(shí)間是自動(dòng)生產(chǎn)的,module是我們當(dāng)前的python代碼文件名。

日志等級(jí):

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

注:只有【當(dāng)前寫(xiě)等級(jí)】大于【日志等級(jí)】時(shí),日志文件才被記錄。
日志記錄格式:

%(name)s      Logger的名字

%(levelno)s    數(shù)字形式的日志級(jí)別

%(levelname)s    文本形式的日志級(jí)別

%(pathname)s    調(diào)用日志輸出函數(shù)的模塊的完整路徑名

%(filename)s    調(diào)用日志輸出函數(shù)的模塊的文件名

%(module)s    調(diào)用日志輸出函數(shù)的模塊名

%(funcName)s    調(diào)用日志輸出函數(shù)的函數(shù)名

%(lineno)d    調(diào)用日志輸出函數(shù)的語(yǔ)句所在的代碼行

%(created)f    當(dāng)前時(shí)間,用UNIX標(biāo)準(zhǔn)的表示時(shí)間的浮 點(diǎn)數(shù)表示

%(relativeCreated)d    輸出日志信息時(shí)的,自Logger創(chuàng)建以 來(lái)的毫秒數(shù)

%(asctime)s    字符串形式的當(dāng)前時(shí)間。默認(rèn)格式是 “2003-07-08 16:49:45,896”。逗號(hào)后面的是毫秒

%(thread)d    線程ID。

%(threadName)s    線程名。

%(process)d    進(jìn)程ID。

%(message)s    用戶輸出的消息
2、多文件日志

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

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)

# 寫(xiě)日志
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)

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

運(yùn)行:

如上述創(chuàng)建的兩個(gè)日志對(duì)象

當(dāng)使用【logger1】寫(xiě)日志時(shí),會(huì)將相應(yīng)的內(nèi)容寫(xiě)入 l1.log 和 l2.log 文件中

當(dāng)使用【logger2】寫(xiě)日志時(shí),會(huì)將相應(yīng)的內(nèi)容寫(xiě)入 l3.log 文件中

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/41635.html

相關(guān)文章

  • 基于Selenium + Pythonweb自動(dòng)化框架

    摘要:一什么是是一個(gè)基于瀏覽器的自動(dòng)化工具,她提供了一種跨平臺(tái)跨瀏覽器的端到端的自動(dòng)化解決方案。模塊主要用來(lái)記錄用例執(zhí)行情況,以便于高效的調(diào)查用例失敗信息以及追蹤用例執(zhí)行情況。測(cè)試用例倉(cāng)庫(kù)用例倉(cāng)庫(kù)主要用來(lái)組織自動(dòng)化測(cè)試用例。 一、什么是Selenium? Selenium是一個(gè)基于瀏覽器的自動(dòng)化工具,她提供了一種跨平臺(tái)、跨瀏覽器的端到端的web自動(dòng)化解決方案。Selenium主要包括三部分:...

    sunny5541 評(píng)論0 收藏0
  • 使用Python解析nginx日志文件

    摘要:項(xiàng)目的一個(gè)需求是解析的日志文件。項(xiàng)目中已經(jīng)按照業(yè)務(wù)規(guī)則對(duì)日志文件進(jìn)行了處理命名規(guī)則如下并且所有的日志文件存放在統(tǒng)一路徑下。模塊使用緩存,所以會(huì)耗費(fèi)內(nèi)存,耗費(fèi)量與要解析的文件相關(guān)。剩下的工作就是根據(jù)業(yè)務(wù)需要,對(duì)獲得的基本信息進(jìn)行處理。 項(xiàng)目的一個(gè)需求是解析nginx的日志文件。 簡(jiǎn)單的整理如下: 日志規(guī)則描述 首先要明確自己的Nginx的日志格式,這里采用默認(rèn)Nginx日志格式: ...

    Baaaan 評(píng)論0 收藏0
  • 使用Python解析nginx日志文件

    摘要:項(xiàng)目的一個(gè)需求是解析的日志文件。項(xiàng)目中已經(jīng)按照業(yè)務(wù)規(guī)則對(duì)日志文件進(jìn)行了處理命名規(guī)則如下并且所有的日志文件存放在統(tǒng)一路徑下。模塊使用緩存,所以會(huì)耗費(fèi)內(nèi)存,耗費(fèi)量與要解析的文件相關(guān)。剩下的工作就是根據(jù)業(yè)務(wù)需要,對(duì)獲得的基本信息進(jìn)行處理。 項(xiàng)目的一個(gè)需求是解析nginx的日志文件。 簡(jiǎn)單的整理如下: 日志規(guī)則描述 首先要明確自己的Nginx的日志格式,這里采用默認(rèn)Nginx日志格式: ...

    bawn 評(píng)論0 收藏0
  • pythonlogging 模塊淺析

    摘要:的繼承關(guān)系使用做日志輸出時(shí),首先我們需要一個(gè)創(chuàng)建一個(gè)對(duì)象。再設(shè)計(jì)多級(jí)別的日志系統(tǒng)時(shí),尤其要注意這點(diǎn)。當(dāng)然,這樣做其實(shí)是有悖于的本意的。是什么是一個(gè)程序內(nèi)全局唯一的,所有對(duì)象的祖先。因此,直接修改是危險(xiǎn)的。 0x00 python logging的繼承關(guān)系 使用python做日志輸出時(shí),首先我們需要一個(gè)創(chuàng)建一個(gè)Logger對(duì)象:import logging; logger = log...

    cooxer 評(píng)論0 收藏0
  • 關(guān)于pythonlogging庫(kù)總結(jié)

    摘要:確認(rèn)一切按預(yù)期運(yùn)行。表明發(fā)生了一些意外,或者不久的將來(lái)會(huì)發(fā)生問(wèn)題如磁盤(pán)滿了。由于更嚴(yán)重的問(wèn)題,軟件已不能執(zhí)行一些功能了。嚴(yán)重錯(cuò)誤,表明軟件已不能繼續(xù)運(yùn)行了。對(duì)于不能獲取的名稱(chēng),則記錄到模塊。 最近在寫(xiě)一些python腳本,總是使用print來(lái)打印信息感覺(jué)很low,所以抽空研究了一下python的logging庫(kù),來(lái)優(yōu)雅的來(lái)打印和記錄日志: 一、簡(jiǎn)單的將日志打印到屏幕: import l...

    kaka 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<