2011-04-22 122 views
3

如何在管理控制檯之外查看Google App Engine日誌?捕獲谷歌應用程序引擎日誌記錄輸出

我正在開發,所以使用dev_appserver.py /管理控制檯,並希望在記錄被髮射時看到日誌。

我想通過標準的Unix工具來監視控制檯的日誌輸出, less/grep/etc,但似乎沒有選擇從dev_appserver.py命令指示日誌記錄,並且我無法在GAE中打開新文件(例如FileHandler),因此文件處理程序將無法工作,我認爲使用socket/udp處理程序會有點矯枉過正(如果甚至可能的話)。

我希望有其他選項可以查看日誌。

感謝您的閱讀。

+0

GAE論壇討論:http://code.google.com/appengine/forum/python-forum.html?place=topic%2Fgoogle-appengine-python%2FsMfaGtLiV7M%2Fdiscussion – 2011-04-22 18:43:12

回答

5

默認記錄器發送登錄輸出到stderr。使用重定向stderr到一個文件中的shell的方法(在tcsh中,(dev_appserver.py > /dev/tty) >& your_logfile.txt,你的shell可能會有所不同。)

您也可以使用logging模塊在Python更改記錄器直接發送到一個文件,如果你發現它的運行本地(os.environ['SERVER_SOFTWARE'].startswith('Dev')

+0

'logging'模塊可以寫入GAE的文件嗎?是否禁止文件操作(現在除w/testbed外)?唯一的選擇不是一個記錄器到一個套接字或HTTP或一些這樣的? – 2011-05-31 13:50:51

+0

@Brian:App Engine沙箱在這裏無關緊要;這個解決方案涉及shell將輸出重定向到本地機器上的一個文件(文件系統大概是可寫的)。很明顯,這在生產服務器上不起作用,但在那裏也是不必要的,因爲日誌是爲你保存的。 – geoffspear 2011-05-31 14:01:25

2

可以使用的appcfg.py

http://code.google.com/appengine/docs/python/tools/uploadinganapp.html#Downloading_Logs

request_logs參數下載日誌編輯: 這個人想出了一個辦法,在XMPP發送日誌。他的解決方案是針對GAE Java,但是這可以適應python。

http://www.professionalintellectualdevelopment.com/

http://code.google.com/p/gae-xmpp-logger/

+0

對不起,我應該有澄清:我想在開發時獲取日誌(因此引用了'dev_appserver.py)。否則,我認爲你已經得到了正確的答案。 :) – 2011-04-22 18:40:06