2010-11-29 2 views
4

Я использую Appstats как описано здесь:Отключить Appstats регистрации

http://code.google.com/appengine/docs/python/tools/appstats.html

Он отлично работает, но каждый запрос в настоящее время входит информационное сообщение, как это:

Сохраненный; ключ: appstats: 039300, часть: 65 байт, полная: 12926 байт, накладные расходы: 0,000 + 0,004; ссылка: http://example.com/stats/details?time=1290733239309

Есть ли способ отключить сообщения журнала при выходе из Appstats?

Возможно, я могу просто взять свою собственную копию ext/appstats/recording.py и прокомментировать вызов logging.info()? Или есть лучший способ?

Спасибо.

ответ

6

Возможно, вы захотите взглянуть на sample appstats config file. Вы можете настроить appstats только на процент от ваших запросов; что должно уменьшить количество сообщений регистрации, но вы все равно будете иметь информацию.

Если вы хотите запланировать апплаты, вы должны взглянуть на строку 303 в /google/appengine/ext/appstats/recording.py. Если вы используете webapp, должно быть очень просто просто monkey-patch appstats, заменив его метод сохранения на свой метод _save.

Также отправьте сообщение feature request и разместите ссылку на группы. Я думаю, что возможность отключить вызов журнала - это действительный запрос; они, как правило, немного загромождают журналы.

+1

+1 для обезьяны-патча – systempuntoout 2010-11-29 20:31:08

+1

Спасибо, Роберт - подход обезьян-патч работает хорошо. – 2010-11-30 14:23:22

6

В случае, если кто-либо еще заинтересован, вот как я удалил регистрацию с помощью предложения Роберта о обезьянном патче.

Стандартный подход для вставки Appstats, как это:

def webapp_add_wsgi_middleware(app):  
    from google.appengine.ext.appstats import recording  
    app = recording.appstats_wsgi_middleware(app)  
    return app 

Это то, что я сделал вместо этого:

def webapp_add_wsgi_middleware(app):  

    from google.appengine.ext.appstats import recording 

    def save(self): 
     try:   
      self._save()  
     except Exception: 
      pass 

    recording.Recorder.save = save 

    app = recording.appstats_wsgi_middleware(app) 

    return app 

Это сохраняет «игнорировать все исключения» поведение сохранения() функции оригинала, но удаляет все записи вокруг него.

+0

Кажется, что у вас много проблем, чтобы удалить одно (безобидное, информативное) сообщение журнала. – 2011-09-05 05:03:45

2

Автор приложения здесь. Почему вы хотите отключить ведение журнала? Я не говорю, что вы не должны - просто я удивлен, что вы хотите отключить его, так как я не понимаю вашу причину. Если это разумный вариант использования, мы можем просто добавить флаг конфигурации, чтобы отключить его.

Смежные вопросы