真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何使用Python日志處理模塊logging-創(chuàng)新互聯(lián)

小編這次要給大家分享的是如何使用Python日志處理模塊logging,文章內(nèi)容豐富,感興趣的小伙伴可以來(lái)了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

創(chuàng)新互聯(lián)憑借在網(wǎng)站建設(shè)、網(wǎng)站推廣領(lǐng)域領(lǐng)先的技術(shù)能力和多年的行業(yè)經(jīng)驗(yàn),為客戶(hù)提供超值的營(yíng)銷(xiāo)型網(wǎng)站建設(shè)服務(wù),我們始終認(rèn)為:好的營(yíng)銷(xiāo)型網(wǎng)站就是好的業(yè)務(wù)員。我們已成功為企業(yè)單位、個(gè)人等客戶(hù)提供了成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)服務(wù),以良好的商業(yè)信譽(yù),完善的服務(wù)及深厚的技術(shù)力量處于同行領(lǐng)先地位。

 logging模塊是Python內(nèi)置的標(biāo)準(zhǔn)模塊,主要用于輸出運(yùn)行日志,可以設(shè)置輸出日志的等級(jí)、日志保存路徑、日志文件回滾等。

其主要優(yōu)點(diǎn)如下:

1.可以通過(guò)設(shè)置不同的日志等級(jí),在release版本中只輸出重要信息,而不必顯示大量的調(diào)試信息;

2.尤其是代碼運(yùn)行在服務(wù)器上,當(dāng)出現(xiàn)問(wèn)題時(shí)可以通過(guò)查看日志進(jìn)行分析。

 logging模塊基本使用:

設(shè)置logger名稱(chēng)

logger = logging.getLogger(log_name)

設(shè)置log級(jí)別

logger.setLevel(logging.info)

創(chuàng)建一個(gè)handler,用于寫(xiě)入日志文件

fh = logging.FileHandler(log_file)

設(shè)置日志級(jí)別,默認(rèn)為logging.WARNING

fh.setLevel(logLevel[log_level])

定義handler的輸出格式

formatter = logging.Formatter('%(asctime)s %(name)s [line:%(lineno)d] %(levelname)s %(message)s')

fh.setFormatter(formatter)

添加handler

logger.addHandler(fh)

format

  • %(levelno)s: 打印日志級(jí)別的數(shù)值
  • %(levelname)s: 打印日志級(jí)別名稱(chēng)
  • %(pathname)s: 打印當(dāng)前執(zhí)行程序的路徑,其實(shí)就是sys.argv[0]
  • %(filename)s: 打印當(dāng)前執(zhí)行程序名
  • %(funcName)s: 打印日志的當(dāng)前函數(shù)
  • %(lineno)d: 打印日志的當(dāng)前行號(hào)
  • %(asctime)s: 打印日志的時(shí)間
  • %(thread)d: 打印線(xiàn)程ID
  • %(threadName)s: 打印線(xiàn)程名稱(chēng)
  • %(process)d: 打印進(jìn)程ID
  • %(message)s: 打印日志信息

    示例代碼如下:

import logging
import datetime
import os

# 定義日志級(jí)別字典
logLevelDic={
  "info":logging.INFO,
  "debug":logging.DEBUG,
  "warning":logging.WARNING,
  "error":logging.ERROR
}

# 日志保存路徑
logSavePath=os.path.join(os.getcwd(),"logs")
if not os.path.exists(logSavePath):
  os.makedirs(logSavePath,exist_ok=True)
# 當(dāng)前時(shí)間
curTime=datetime.datetime.now().strftime("%Y%m%d")
# 保存的日志的完整名稱(chēng)
logFile=os.path.join(logSavePath,curTime+".SADCI.log")
# 日志級(jí)別
logLevel="error"

class Logger:
  def __init__(self,logFile=logFile,logLevel=logLevelDic["error"]):
    self.logFile=logFile
    self.logLevel=logLevel
    # 設(shè)置logger名稱(chēng)
    self.logger=logging.getLogger()
    # 設(shè)置參數(shù)級(jí)別
    self.logger.setLevel(self.logLevel)
    self.formatter=logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
    # 判斷handlers是否存在
    if not self.logger.handlers:
      # 寫(xiě)入控制臺(tái)
      consoleStream=logging.StreamHandler()
      consoleStream.setLevel(self.logLevel)
      consoleStream.setFormatter(self.formatter)
      # 寫(xiě)入文件
      fileStream=logging.FileHandler(self.logFile,mode="a")
      fileStream.setLevel(self.logLevel)
      fileStream.setFormatter(self.formatter)
      self.logger.addHandler(consoleStream)
      self.logger.addHandler(fileStream)

def MyLogger():
  return Logger(logFile=logFile,logLevel=logLevelDic[logLevel]).logger


if __name__ == '__main__':
  MyLogger().error("test logg")

網(wǎng)站欄目:如何使用Python日志處理模塊logging-創(chuàng)新互聯(lián)
地址分享:http://weahome.cn/article/djhhjs.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部