我的應用程序從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