日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

Python/ target=_blank class=infotextkey>Python logging模塊使用

在開發和維護Python應用程序時,日志記錄是一項非常重要的任務。Python提供了內置的logging模塊,它可以幫助我們方便地記錄應用程序的運行時信息、錯誤和調試信息。本文將介紹如何使用Python logging模塊進行日志記錄。

獲取更多技術資料,請點擊!

logging模塊

logging是Python自帶的用于記錄程序運行日志的模塊,它將日志分為5個等級,分別是:

  • DEBUG
  • INFO
  • WARNING
  • ERROR
  • CRITICAL

同時也可以將日志輸出到控制臺或者寫入到日志文件中。

logging中的常用對象

  • Logger:日志記錄器,是應用程序中可以直接使用的接口。
  • Handler:日志處理器,用以表明將日志保存到什么地方以及保存多久。
  • Formatter:格式化,用以配置日志的輸出格式。

三者關系為,一個 Logger 使用一個 Handler,一個 Handler 使用一個 Formatter。

日志輸出到控制臺

import logging

# 創建logger實例

logger = logging.getLogger('example')

# 設置日志級別

logger.setLevel(logging.DEBUG)

# 創建控制臺處理器,將日志輸出到控制臺

console_handler = logging.StreamHandler()

console_handler.setLevel(logging.DEBUG)

# 創建日志格式

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

# 將日志格式應用到處理器

console_handler.setFormatter(formatter)

# 將處理器添加到logger實例中

logger.addHandler(console_handler)

# 記錄日志信息

logger.debug('debug')

logger.info('info')

logger.warning('warning')

logger.error('error')

logger.critical('critical')

運行代碼,控制臺輸出如下:

2023-06-29 11:04:29,242 - example - DEBUG - debug

2023-06-29 11:04:29,242 - example - INFO - info

2023-06-29 11:04:29,242 - example - WARNING - warning

2023-06-29 11:04:29,242 - example - ERROR - error

2023-06-29 11:04:29,242 - example - CRITICAL - critical

日志輸出到文件

更多時候,我們需要將日志保存起來,所以我們可以指定將日志輸出到日志文件中,代碼如下:

import logging

filename = "{}.log".format(__file__)

fmt = "%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s"

logging.basicConfig(

level=logging.DEBUG,

filename=filename,

filemode="w",

format=fmt

logging.info("info")

logging.debug("debug")

logging.warning("warning")

logging.error("error")

logging.critical("critical")

日志文件內容如下圖:

同時輸出到文件和控制臺

import logging

# 創建logger對象

logger = logging.getLogger(__name__)

logger.setLevel(logging.DEBUG) # log等級總開關

# log輸出格式

formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")

# 控制臺handler

stream_handler = logging.StreamHandler()

stream_handler.setLevel(logging.INFO) # log等級的開關

stream_handler.setFormatter(formatter)

# 文件handler

file_handler = logging.FileHandler("logging.log")

file_handler.setLevel(logging.WARNING) # log等級的開關

file_handler.setFormatter(formatter)

# 添加到logger

logger.addHandler(stream_handler)

logger.addHandler(file_handler)

# 輸出日志

logger.info("info")

logger.debug("debug")

logger.warning("warning")

logger.error("error")

logger.critical("critical")

logging.conf配置文件

我們可以通過logging.conf來配置日志的輸出,logging.conf名稱是固定的。

[loggers]

keys = root

[handlers]

keys = logfile

[formatters]

keys = generic

[logger_root]

handlers = logfile

[handler_logfile]

class = handlers.TimedRotatingFileHandler

args = ('demo.log', 'midnight', 1, 10)

level = DEBUG

formatter = generic

[formatter_generic]

format = %(asctime)s %(levelname)-3.5s [%(name)s:%(lineno)s] %(message)s

import logging.config

logging.config.fileConfig('logging.conf')

logging.debug('debug message')

logging.info("info message")

logging.warning('warning message')

logging.error("error message")

logging.critical('critical message')

運行結果如下:

循環覆蓋式日志處理

隨著程序逐漸運行,日志規模會越來越大,我們就需要刪除掉之前的日志,也可以設置單個日志的大小,當日志大小達到限定值時,會自動開始寫入新的日志文件。

import logging

from logging.handlers import RotatingFileHandler

logger = logging.getLogger("root")

# 設置logger等級

logger.setLevel(logging.DEBUG)

# 設置日志格式

formatter = logging.Formatter(

fmt='%(asctime)s - %(pathname)s - %(name)s - %(levelname)s: - %(message)s',

datefmt='%Y-%m-%d %H:%M:%S')

# 設置日志回滾 # 單個日志文件最大為1k,

# 最多保存4份日志文件(除了當前寫入的文件外)

# 日志文件編碼格式為utf-8

handler = RotatingFileHandler("logging.log", maxBytes=1024 * 1, backupCount=4, encoding='utf-8')

handler.setFormatter(formatter)

# 給logger添加handler

logger.addHandler(handler)

# 測試主模塊

for i in range(100):

logger.debug("測試日志mAIn %d", i)

總結

通過使用Python的logging模塊,我們可以方便地進行日志記錄并獲得應用程序的運行時信息。我們可以設置不同的日志級別,根據需要記錄調試信息、警告、錯誤等。此外,我們還可以將日志記錄到文件中,以供后續查看和分析。

使用logging模塊進行日志記錄可以幫助我們更好地理解應用程序的運行狀況,并幫助我們快速定位和解決問題。建議在開發和維護Python應用程序時,充分利用logging模塊進行日志記錄。

分享到:
標簽:Python logging
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定