【发布时间】:2019-08-18 14:43:59
【问题描述】:
我正在通过我的服务器上的屏幕会话运行一个相当复杂的 python 脚本。有时,几个小时后,它崩溃了,我不知道为什么。由于脚本在屏幕中运行,因此当脚本崩溃时我无法访问错误。有没有办法通过日志记录或简单的管道提取该信息?
【问题讨论】:
标签: python linux python-3.x logging gnu-screen
我正在通过我的服务器上的屏幕会话运行一个相当复杂的 python 脚本。有时,几个小时后,它崩溃了,我不知道为什么。由于脚本在屏幕中运行,因此当脚本崩溃时我无法访问错误。有没有办法通过日志记录或简单的管道提取该信息?
【问题讨论】:
标签: python linux python-3.x logging gnu-screen
您可以使用nohup 和& 在后台运行您的python 命令。默认输出将在 nohup.out 文件中记录所有打印输出(包括终止脚本的错误)。您可以使用>在 Bash 中指定文件输出
例如
nohup python my_python_script.py > my_output_log &
【讨论】:
nohup.out 文件,因为它只会将输出附加到文件中,因此您最终可能会一团糟。
我有一个非常相似的问题,我做了类似的事情
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”
【讨论】: