【发布时间】:2022-01-22 02:00:07
【问题描述】:
我做了一个小游戏作为我的学校项目,我想将严重错误保存到我使用日志记录模块创建的 .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 文件中。相反,我在终端收到错误消息。
【问题讨论】:
-
你可以使用
try,except块,你尝试运行一些代码,万一出现异常你可以在except块中处理 -
@AtharvaGundawar 这不是我的意思。我想在日志文件中保存严重错误(那些关闭窗口的错误,如语法错误)。
-
您可以在
subprocess或类似包的帮助下使用另一个python文件运行目标文件并记录输出。 -
@AtharvaGundawar 我能否将日志从 2 个脚本保存到同一个文件,还是必须有额外的 crash.log?