亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中logging模塊進行封裝的案例分析

發布時間:2020-08-10 10:38:39 來源:億速云 閱讀:243 作者:小新 欄目:開發技術

這篇文章主要介紹了Python中logging模塊進行封裝的案例分析,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

1. 簡介

追蹤某些軟件運行時所發生事件的方法, 可以在代碼中調用日志中某些方法來記錄發生的事情

一個事件可以用一個可包含可選變量數據的消息來描述

事件有自己的重要性等級

2. 使用logging日志系統四大組件

  • loggers日志器
    • 提供應用程序代碼直接使用的接口
  • handlers處理器
    • 用于將日志記錄發送到指定的目的位置
  • filters過濾器
    • 過濾, 決定哪些輸出哪些日志記錄, 其余忽略
  • formatters格式器
    • 控制日志輸出格式

使用代碼如下

import os, time, logging, sys
from Common.plugs.get_config import r_config

BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
if sys.platform == "win32":
  ENV_CONF_DIR = os.path.join(BASE_DIR, 'Common/conf/env_config.ini').replace('/', '\\')
else:
  ENV_CONF_DIR = os.path.join(BASE_DIR, 'Common/conf/env_config.ini')
log_path = r_config(ENV_CONF_DIR, "log", "log_path")


class Log:

  def __init__(self, log_path):
    self.logName = os.path.join(log_path, '{0}.log'.format(time.strftime('%Y-%m-%d')))

  def console_log(self, level, message):
    # 創建一個logger
    logger = logging.getLogger()
    logger.setLevel(logging.DEBUG)

    # 創建一個handler,用于 debug 寫入日志文件
    debug_file = logging.FileHandler(self.logName, 'a+', encoding='utf-8')
    debug_file.setLevel(logging.DEBUG)

    # 再創建一個handler,用于輸出到控制臺
    ch = logging.StreamHandler()
    ch.setLevel(logging.DEBUG)

    # 定義handler的輸出格式

    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

    debug_file.setFormatter(formatter)
    ch.setFormatter(formatter)

    # 給logger添加handler
    logger.addHandler(debug_file)
    logger.addHandler(ch)

    # 記錄一條日志
    if level == 'info':
      logger.info(message)
    elif level == 'debug':
      logger.debug(message)
    elif level == 'warning':
      logger.warning(message)
    elif level == 'error':
      logger.error(message)

    elif level == 'critical':
      logger.critical(message)

    logger.removeHandler(ch)
    logger.removeHandler(debug_file)
    debug_file.close()

  def debug(self, message): #最詳細日志信息, 多用于問題診斷
    self.console_log('debug', message)

  def info(self, message): #僅次于DEBUG, 多用于記錄關鍵點信息, 確保程序按預期執行
    self.console_log('info', message)

  def warning(self, message): #低等級故障, 但程序仍能運行, 如磁盤空間不足警告
    self.console_log('warning', message)

  def error(self, message): #由于比WARNING嚴重的問題, 導致某些功能不能正常運行時的記錄
    self.console_log('error', message)

  def critical(self, message): 嚴重錯誤, 導致應用程序不能繼續運行時的記錄
    self.console_log('critical', message)


if __name__ == '__main__':
  Log(log_path).info("adasd")
  Log(log_path).error("dsadasddasd")
'''

感謝你能夠認真閱讀完這篇文章,希望小編分享Python中logging模塊進行封裝的案例分析內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

余干县| 廉江市| 张家川| 弥渡县| 黔东| 镇宁| 江北区| 武汉市| 莲花县| 海安县| 和政县| 湖口县| 玉屏| 永吉县| 革吉县| 如东县| 子长县| 新余市| 郧西县| 南岸区| 青海省| 马边| 山西省| 五莲县| 河源市| 务川| 库尔勒市| 万安县| 青冈县| 汪清县| 呼伦贝尔市| 铅山县| 灵寿县| 扎囊县| 武穴市| 邳州市| 喀喇沁旗| 洛隆县| 松溪县| 阳高县| 胶南市|