簡體   English   中英

如何使用日志庫? (在 Python 中實現日志記錄)

[英]How to use logging library? (Implement logging in Python)

我想在一個類中應用logging庫以從我的代碼中的不同步驟獲取報告,並使用infodebugerror函數並將其保存在日志文件中。 此外,我還想在我的代碼中使用multiprocessing 但我不太清楚它是如何工作的,應該如何設置,另外我已經在代碼中使用它並將其定義如下

import logging 

logging.basicConfig(filename='logfile.log',level=logging.DEBUG)

它停止了代碼並阻止終止進程。 我想知道它應該如何在課堂上使用並停止並關閉日志文件?!! 任何幫助,將不勝感激...

您可以通過 Python 中的Good logging practice獲得更多關於 logging 模塊的想法並從Python 文檔中獲取更詳細的信息。

下面是一個關於如何使用日志記錄模塊的基本示例,我在其中故意提出了一個異常:

import logging
log = logging.getLogger("mylog")
log.setLevel(logging.DEBUG)

formatter = logging.Formatter(
    "%(asctime)s %(threadName)-11s %(levelname)-10s %(message)s")
# Alternative formatting available on python 3.2+:
# formatter = logging.Formatter(
#     "{asctime} {threadName:>11} {levelname} {message}", style='{')

# Log to file
filehandler = logging.FileHandler("debug.txt", "w")
filehandler.setLevel(logging.DEBUG)
filehandler.setFormatter(formatter)
log.addHandler(filehandler)

# Log to stdout too
streamhandler = logging.StreamHandler()
streamhandler.setLevel(logging.INFO)
streamhandler.setFormatter(formatter)
log.addHandler(streamhandler)

# Test it
log.debug("Some message")
log.error("An error!")
try:
    something()
except:
    log.exception("An exception occured!")

在您的debug.txt中,您將獲得如下輸出:

2011-01-18 12:07:24,943  MainThread  DEBUG      Some message
2011-01-18 12:07:24,943  MainThread  ERROR      An error!
2011-01-18 12:07:24,943  MainThread  ERROR      An exception occured!
Traceback (most recent call last):
  File "./logtest.py", line 17, in 
    something()
NameError: name 'something' is not defined

對於我自己的項目,我開發了對我有很大幫助的日志記錄工具。
存儲庫允許設置配置文件或在代碼中定義您的首選項。 我在新腳本中的處理方式是:
1. 將文件 `MyLogger.py` 復制到你的根目錄 2. 在你想要記錄的文件中做:``` // script.py from MyLogger import Logger

日志 = 記錄器(名稱).logger

log.info('你好')

 The output of the logger will even contain the namefile (script.py). <br> I hope it helps! <br> The <a href="https://github.com/vignif/LogMe">code is available</a>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM