2010-02-09 35 views
18

Sana appcfg.py ile ham erişim günlükleri indirmek biliyorum, ama sadece (piton günlüğü ifadeleri, istisnalar ve API istatistikler gibi belirli bir istek çevresindeki tüm bilgilerin gerçekten ilgileniyorum çevrimiçi günlük görüntüleyici gibi). Bu bilgiyi başka bir şekilde elde etmek için bir yolun olup olmadığını kendiniz inşa etmek zorunda olduğunu bilen var mı?İndir Günlüğü

Eğer herhangi birinin merak ettiği bir durum varsa, problemler için sürekli olarak istatistiksel analizler yapmak ve bunları ofiste bir duvarda büyük bir ekranda göstermek istiyoruz.

cevap

21

Tabii - sadece appcfg.py için --severity bayrak geçmek:

$ 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. 
+0

nasıl yapabilirdim İşte

AppEngine'de kendisinde çalışan bir uygulama –

15

Bu gerçekten bizim için de çalışır şudur: Neyse

appcfg.py --append --num_days=0 --include_all request_logs /path/to/your/app/ /var/log/gae/yourapp.log 

, çizgi yukarıda alacak tüm senin Kayıtları günlüğe kaydet ve bunları daha önce çalıştırdıysanız, bir günlük dosyasına eklerseniz, yeni bir günlük dosyası oluşturur. Aslında var olan günlüğüne bakar (eğer varsa) ve herhangi bir kopyasını almayacaktır. Bunu isterseniz, --append olmadan çalıştırabilirsiniz, ancak günlük indirme işlemlerini otomatikleştiriyorsanız kullanabilirsiniz. Buradaki anahtar, belgelenmemiş gibi görünen --include_all bayrağından biridir. Bu bayrak, GAE'nin web günlüğü görüntüleyicisini kullanırsanız gördüğünüz tüm verileri alır. Yani, aşağıdaki gibi alanları alacaksınız: ms = 71 cpu_ms = 32 api_cpu_ms = 12 cpm_usd = 0.000921 ... vb

Tamam, umarım bu birilerine yardımcı olur.

BTW, biz bu konuda bir blog yazısı yazdım, burayı kontrol: http://bit.ly/GAE-LOGS

+0

:-(yeterince teşekkür edemez kaçırdılar! my app hızla 90days tutma sınıra yaklaştığını ve ben tüm günlükleri, bunlardan sadece bir bölümünü kaydetmek için artık sadece hiçbir fikri yoktu. Şimdi biliyorum! =) – lenik

+0

' --include-all' bayrağı OP tarafından belirtilen Python 'logging' çıktılarını almıyor gibi görünüyor. belki de kullanır ama artık değil. Ancak, @Nick Johnson ipucu kullanmak için '--severity' bayrağı hile yapmak gibi görünüyor! – hamx0r

3

Ben appcfg ile 100M sınırı içine bitiyor gibi görünüyor. Eğer işleme ilerletmek, böylece özel (ayrıca beni request_logs için ayrıştırma tüm veri indirme değil olmaksızın ham günlükleri erişmek için bir yol Burada https://github.com/manasg/gae-log-fetcher