gpt4 book ai didi

python - 如何使用 Python 正确记录错误/信息?

转载 作者:行者123 更新时间:2023-11-28 23:03:21 25 4
gpt4 key购买 nike

我正在构建一个 GUI 程序,它有几个 GUI(主)模块和 4 个不同的 QThread 模块。我希望能够正确记录未处理的异常和我指定的其他各种信息。所以我决定使用 python 的内置日志记录模块。

这是我配置的:

logging.basicConfig(filename="ubc.log", 
format='%(asctime)-6s: %(name)s - %(levelname)s - %(module)s - %(funcName)s - %(lineno)d - %(message)s',
level=logging.DEBUG)

根据此配置,我希望日志记录模块准确地告诉我错误/信息发生在哪一行,在哪个模块中,它发生在哪个函数中,等等。但是,这是我在日志中得到的(当我执行 logging.info("text") 时:

2011-12-22 16:06:02,072: root - INFO - logging - info - 1592 - 调用加载博客名称函数,tabWidget 索引为 0

不用说,这些信息中的大部分对我来说都没有用。行号绝对不是 1592,函数名不是信息,模块没有记录。

重申一下,我想要的是:当我说 logging.info("log this") 时,我希望它出现在日志中:

2011-12-22 16:06:02,072: root - INFO - WorkerThread1.py - upload_function(self, email, param) - 行号 131 - 记录此

这样的事情是否可能,如果可能,如何实现?

编辑:根据请求,我添加了更多代码:

class UI(QMainWindow, ui_ui.Ui_MainWindow):

def __init__(self, parent=None):
super(BlogCreator, self).__init__(parent)
self.setupUi(self)
self.tabWidget.setCurrentIndex(0)

logging.info("Prda!")

logging.info("Prda!") 位于 GUI.py 文件的第 414 行。如您所见,每次软件启动时都应写入此消息(这是 setupUi)。它已被写入,但这里是正在写入的内容:

2011-12-22 16:53:04,209: root - INFO - logging - info - 1592 - Prda!

EDIT #2 经过进一步检查,似乎是 PyInstaller 以某种方式搞砸了。直接通过解释器运行软件会产生预期的结果;程序编译成EXE文件后,出现上述情况。

最佳答案

你能发布一个完整的片段吗?如果我按照你刚才说的去做,我会得到一个正确的日志。我将在此处发布我的脚本(名为 stackoverflow_8613924.py),以供比较:

import logging

logging.basicConfig(filename=None, format='%(asctime)-6s: %(name)s - %(levelname)s - %(module)s - %(funcName)s - %(lineno)d - %(message)s', level=logging.DEBUG)

def fname():
logging.info('hello world')

fname()

执行它给我:

$ python stackoverflow_8613924.py 
2011-12-23 09:05:35,678: root - INFO - stackoverflow_8613924 - fname - 6 - hello world

关于python - 如何使用 Python 正确记录错误/信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8613924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com