我的应用程序从run.py
调用。我已经安装了Pygments,我希望重定向Python的输出,以便在发生回溯时将它们格式化为更易于阅读的格式。通过Pygments重定向python回溯
这是通过重定向既pygmentize和stdout
stderr
,我试过了命令,python run.py 2>&1 | pygmentize -l py
。 pygmentize文档说,如果没有提供文件,它将从stdin
中读取,“如果没有给出输入文件,使用stdin,如果没有给出-o,则使用stdout。”
但是,当我重定向像这样,没有输出 - 错误或日志语句或任何其他 - 输出到我的终端。
当我运行没有管道输出到pygmentize我的命令,即python run.py 2>&1
我得到这样的输出:
INFO:werkzeug: * Running on http://0.0.0.0:5000/
INFO:werkzeug: * Restarting with reloader
有什么建议?
这很奇怪。当我尝试你的例子,它工作正常。 (我强制回溯,它正确pygmentized。)你可以告诉我们'python run.py 2>&1'的输出(没有管道pygmentize)? – btanaka 2013-04-30 18:29:10
@btanaka当我这样做,我会得到输出。我用那个测试和它的输出更新了我的问题。 – skyler 2013-04-30 18:32:38