在raspberry pi上记录python错误

时间:2015-05-18 03:45:35

标签: python linux pyqt raspberry-pi

我正在调试我正在为我正在编写的嵌入式覆盆子项目编写的python应用程序,因为它使用的是TFT屏幕而不是完整的显示器而且没有显示器/键盘,所以我我必须通过TFT桌面上的图标启动python应用程序(非常小)。我无法通过SSH启动应用程序,因为它需要X(由于PyQT4),所以为了让它在RPi上运行,必须使用设备本身的桌面图标启动它。

桌面图标启动使用以下内容的shell脚本:

sudo python appname.py >> logfile.log

但是这并没有写出它所遇到的任何错误,它只会记录我在做出任何错误之前正在做的事情。

如果我从RPi中取出SD卡并将其放入第二个RPi我连接到一个完整的鼠标/键盘/显示器,我可以运行python应用程序并在终端中看到错误,但这不是帮我弄清楚完全组装的设备上发生了什么。

如何记录我通常在终端中看到的错误?

编辑:当然我在应用程序中捕获错误,但是我在python应用程序中发送shell命令,这可能是python中try / catch无法捕获的问题。我想在启动python脚本时捕获终端中的所有输出,无论它是什么来源。

3 个答案:

答案 0 :(得分:4)

就目前而言,你只是捕获标准输出。将您的调用修改为以下内容:

sudo python appname.py >> logfile.log 2>&1

这将重定向stdout和stderr。

答案 1 :(得分:1)

对于唯一的错误,您可以使用:

sudo python appname.py 2>> logfile.log

仅限stdout

sudo python appname.py >> logfile.log
#same as sudo python appname.py 1>> logfile.log

适用于stdoutstderr

sudo python appname.py >> logfile.log 2>&1

答案 2 :(得分:0)

您还可以将stderr捕获到单独的文件中:

sudo python appname.py >> logfile.log 2>> error.log