Python的日志功能

Python日志的功能比較龐大,基礎(chǔ)的就是用basic的就logging.basicConfig()就可以,也可以自己去定義一些高端一點(diǎn)的模塊,我把代碼寫(xiě)在下面,大致的思路就是首先用logging.getLogger創(chuàng)建一個(gè)日志對(duì)象,用formatter去設(shè)置日志的格式,日志對(duì)象中處理輸出到控制面板的采用logging.StreamHandler,可以單獨(dú)設(shè)置這部分的層次和格式,日志對(duì)象中將日志存儲(chǔ)在文件中的是FileHandler同樣的可以控制層次和格式

import logginglog = logging.getLogger("日志")log.setLevel(logging.DEBUG)formatter = logging.Formatter("%(asctime)s %(name)s %(levelname)s %(message)s")sh = logging.StreamHandler()sh.setLevel(logging.INFO)sh.setFormatter(formatter)fh = logging.FileHandler(filename="日志文件")fh.setLevel(logging.INFO)fh.setFormatter(formatter)log.addHandler(sh)log.addHandler(fh)log.info("hello")

作為對(duì)比,下面是采用基礎(chǔ)配置生成的日志,同樣把日志輸出在了屏幕和文件中

import loggingbc = logging.basicConfig(level = logging.INFO, filename="./name.log")logging.warning("1232323")

對(duì)于第一部分可以單獨(dú)寫(xiě)成一個(gè)類(lèi)作封裝,主要的目的是在一個(gè)文件中不想寫(xiě)那么一大堆得日志文件,只需要兩句代碼實(shí)例化之后就調(diào)用,當(dāng)然這里還可以封裝的更好,我這里只是演示所以只滿足了基礎(chǔ)的功能。

import logging
class log1(object):
    def __init__(self):
        self.log = logging.getLogger("日志")
        self.log.setLevel(logging.DEBUG)
        self.formatter = logging.Formatter("%(asctime)s %(name)s %(levelname)s %(message)s")
        self.sh = logging.StreamHandler()
        self.sh.setLevel(logging.INFO)
        self.sh.setFormatter(self.formatter)
        self.fh = logging.FileHandler(filename="fileaa")
        self.fh.setLevel(logging.INFO)
        self.fh.setFormatter(self.formatter)
        self.log.addHandler(self.sh)
        self.log.addHandler(self.fh)

    def getlog(self):

        return self.log

log2 = log1()   # 實(shí)例化
log3 = log2.getlog() # 獲取日志對(duì)象

log3.info("12323")  #輸出日志
Python的日志功能的圖1
控制臺(tái)的日志
Python的日志功能的圖2
文件中的日志

喜歡的朋友可以給個(gè)關(guān)注或者聯(lián)系我

登錄后免費(fèi)查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項(xiàng)目客服
  • 培訓(xùn)客服
  • 平臺(tái)客服

TOP