【问题标题】:Log when python script failedpython脚本失败时的日志
【发布时间】:2019-08-18 14:43:59
【问题描述】:

我正在通过我的服务器上的屏幕会话运行一个相当复杂的 python 脚本。有时,几个小时后,它崩溃了,我不知道为什么。由于脚本在屏幕中运行,因此当脚本崩溃时我无法访问错误。有没有办法通过日志记录或简单的管道提取该信息?

【问题讨论】:

    标签: python linux python-3.x logging gnu-screen


    【解决方案1】:

    您可以使用nohup& 在后台运行您的python 命令。默认输出将在 nohup.out 文件中记录所有打印输出(包括终止脚本的错误)。您可以使用>在 Bash 中指定文件输出

    例如

    nohup python my_python_script.py > my_output_log &
    

    【讨论】:

    • 这看起来不错。我可以用这个在并行和不同的输出文件中运行多个脚本吗?
    • 是的,这应该是可能的。但是,如果您坚持默认设置,则需要注意不要弄乱您的 nohup.out 文件,因为它只会将输出附加到文件中,因此您最终可能会一团糟。
    【解决方案2】:

    我有一个非常相似的问题,我做了类似的事情

    import logging
    logging.basicConfig(filename = os.path.join(script_path, 'error.log'), level = logging.ERROR)
    try:
        # some dangerous code here
    except Exception as e:
        logging.exception(str(e))
        # Now you can kill your script, etc
    

    这将生成一个包含崩溃信息的文件“error.log”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-18
      • 1970-01-01
      • 2020-01-16
      • 1970-01-01
      • 2016-04-08
      • 1970-01-01
      • 2021-08-17
      • 1970-01-01
      相关资源
      最近更新 更多