如何使用日志库?(在Python中实现日志记录)

2024-04-27 04:19:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在类中应用logging库,从代码中的不同步骤获取报告,并使用infodebugerror函数,并将其保存在日志文件中。此外,我还想在代码中使用multiprocessing。但我不太清楚它是如何工作的,应该如何设置的,另外,我在一个代码中使用了它,并将其定义为

import logging 

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

它停止了代码并阻止终止进程。我想知道它应该如何在一个类中使用,并停止和关闭日志文件?!! 任何帮助都将不胜感激。。。你知道吗


Tags: 文件函数代码debugimportinfo定义logging
1条回答
网友
1楼 · 发布于 2024-04-27 04:19:56

您可以通过Good logging practice in python进一步了解日志模块,并从Python document获得更详细的信息。你知道吗

下面是一个关于如何使用日志模块的基本示例,我在其中故意提出了一个异常:

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

相关问题 更多 >