【问题标题】:python: log unusual crashes in a text filepython:在文本文件中记录异常崩溃
【发布时间】:2017-12-13 08:07:11
【问题描述】:

当我的脚本因任何原因崩溃时,我想写入一个文件,即崩溃时间和消息。但我无法做到这一点。我的脚本应该在后台运行并且永远不会停止,除非我故意这样做。现在它正在崩溃,我正在处理崩溃,但我只想知道它何时崩溃并将时间写入文件中。我正在 Linux 上使用 python 2.7

if __name__ == '__main__':

    print ('Starting body_detection')
    body_det = multiprocessing.Process(target=body_detection )
    body_det.start()

    print('Starting start_upload')

    upload_body_process = multiprocessing.Process(target=start_upload)
    upload_body_process.start()
    upload_body_process.join()

在 main 之上,我定义了所有函数和变量。

【问题讨论】:

  • 使用 try except 来捕捉你的错误并输出时间
  • @Eumel 我在代码中的任何地方都使用 try catch,但它不适用于每个退出。我想写下我的脚本崩溃的时间。稍后我会研究为什么它会崩溃。
  • 然后在整个 main 函数中使用它

标签: python linux python-2.7 exception crash


【解决方案1】:

请阅读Python logging howto。这是该页面的一些代码。它会自动写入每条消息的时间。

import logging
logging.basicConfig(filename='example.log',level=logging.DEBUG)
logging.debug('This message should go to the log file')
logging.info('So should this')
logging.warning('And this, too')

您还可以捕获您的异常并将其写入日志。使用traceback 获取异常消息。

如果您无法捕获异常,则只需在 bash 脚本中启动 python,该脚本将在 python 退出时打印时间。你的.sh

python test.py                                                                   
echo `date`  

【讨论】:

    猜你喜欢
    • 2020-02-27
    • 2017-02-04
    • 1970-01-01
    • 1970-01-01
    • 2022-06-20
    • 2012-02-24
    • 1970-01-01
    • 2020-12-09
    • 1970-01-01
    相关资源
    最近更新 更多