我知道你可以用appcfg.py下載原始訪問日誌,但是我真的很感興趣的是有關Python特定請求的所有信息,例如python日誌語句,異常和api統計信息(只是就像在線日誌查看器一樣)。有誰知道是否有辦法以另一種方式獲取這些信息,然後自己構建它?從AppEngine下載日誌包括Python日誌語句
如果有人想知道,我們想對問題做一些連續的統計分析,並在辦公室的牆上的大屏幕上顯示它們。
我知道你可以用appcfg.py下載原始訪問日誌,但是我真的很感興趣的是有關Python特定請求的所有信息,例如python日誌語句,異常和api統計信息(只是就像在線日誌查看器一樣)。有誰知道是否有辦法以另一種方式獲取這些信息,然後自己構建它?從AppEngine下載日誌包括Python日誌語句
如果有人想知道,我們想對問題做一些連續的統計分析,並在辦公室的牆上的大屏幕上顯示它們。
當然 - 只要傳遞--severity標誌appcfg.py:
$ appcfg.py help request_logs
Usage: appcfg.py [options] request_logs <directory> <output_file>
Write request logs in Apache common log format.
The 'request_logs' command exports the request logs from your application
to a file. It will write Apache common log format records ordered
chronologically. If output file is '-' stdout will be written.
Options:
-h, --help Show the help message and exit.
-q, --quiet Print errors only.
-v, --verbose Print info level logs.
--noisy Print all logs.
-s SERVER, --server=SERVER
The server to connect to.
--insecure Use HTTP when communicating with the server.
-e EMAIL, --email=EMAIL
The username to use. Will prompt if omitted.
-H HOST, --host=HOST Overrides the Host header sent with all RPCs.
--no_cookies Do not save authentication cookies to local disk.
--passin Read the login password from stdin.
-A APP_ID, --application=APP_ID
Override application from app.yaml file.
-V VERSION, --version=VERSION
Override (major) version from app.yaml file.
-n NUM_DAYS, --num_days=NUM_DAYS
Number of days worth of log data to get. The cut-off
point is midnight UTC. Use 0 to get all available
logs. Default is 1, unless --append is also given;
then the default is 0.
-a, --append Append to existing file.
--severity=SEVERITY Severity of app-level log messages to get. The range
is 0 (DEBUG) through 4 (CRITICAL). If omitted, only
request logs are returned.
--vhost=VHOST The virtual host of log messages to get. If omitted,
all log messages are returned.
--include_vhost Include virtual host in log messages.
--end_date=END_DATE End date (as YYYY-MM-DD) of period for log data.
Defaults to today.
這是我們什麼作品真的很好:
appcfg.py --append --num_days=0 --include_all request_logs /path/to/your/app/ /var/log/gae/yourapp.log
不管怎麼說,線以上將得到所有你記錄日誌並將它們追加到日誌文件中,如果以前執行過它,則會創建一個新的日誌文件。它實際上會查看你現有的日誌(如果它存在的話)並且它不會得到任何重複。如果需要,您可以在不使用--append
的情況下運行此操作,但如果您自動執行日誌下載,則可以使用它。
這裏的關鍵是--include_all
標誌,這似乎是無證的。如果您使用GAE的Web日誌查看器,此標誌將獲得您看到的所有數據。所以,你會得到如下字段:ms = 71 cpu_ms = 32 api_cpu_ms = 12 cpm_usd = 0.000921 ...等等
好的,我希望能幫助別人。
順便說一句,我們寫了這個博客文章,看看這裏:http://bit.ly/GAE-LOGS
我似乎遇到了100M的限制與下,appcfg。最後我用logservice API來獲取日誌
下面是一個方法來訪問原始日誌,以便您可以進一步處理,而無需自定義分析(對我來說也request_logs沒有下載的所有數據對於指定的時間範圍)。
這裏是一個運行在自身的AppEngine應用程序: https://gaelogapp.appspot.com/
您可以輕鬆地更新添加此功能,您的應用程序的app.yaml和複製logs.py: https://github.com/okigan/gaelogapp
我怎麼能錯過了:-( – 2010-02-09 22:36:40