使用Python日志保存关键错误



我做了一个小游戏作为我的学校项目&我想把关键错误保存到我使用日志模块创建的.log文件中,但我不知道如何记录它们。

日志配置:

logging.basicConfig(level=logging.DEBUG, filename='log.log', filemode='w', format='%(asctime)s - %(name)s:%(levelname)s: %(message)s')

我想做的事:每次程序遇到无法处理的异常(如TypeError或SyntaxError(时,都会保存在log.log文件中。然后程序将退出。但它通常只是关闭程序并在终端中引发错误,这并不是故意的。

我尝试过使用:

import sys
class ShutdownHandler(logging.Handler):
def emit(self, record):
logging.critical(record.msg)
logging.shutdown()
sys.exit(1)
logging.basicConfig(level=logging.DEBUG, filename='log.log', filemode='w', format='%(asctime)s - %(name)s:%(levelname)s: %(message)s')

但它并没有将输出保存到log.log文件中。相反,我在终端收到了错误消息。

如上所述,您可以使用以下内容来记录将在终端中返回给您的任何错误:

import subprocess
a = subprocess.run(["python3","hello.py"], stdout=subprocess.PIPE)
print(a.stdout.decode('utf-8'))

一旦你有了输出,你就可以搜索错误并相应地记录你的实验。

最新更新