4

ここに記載されているように、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() の呼び出しをコメントアウトすることもできますか? それとももっと良い方法がありますか?

ありがとう。

4

3 に答える 3

6

サンプルの appstats 構成ファイルを参照してください。リクエストの一部に対してのみ実行するように appstats を構成できます。これにより、ログ メッセージの数が減りますが、情報は引き続き得られます。

appstats にパッチを適用する場合は、 の 303 行目を確認する必要があります/google/appengine/ext/appstats/recording.py。webapp を使用している場合は、save メソッドを _save メソッドに置き換えるだけで、appstats にモンキー パッチを適用するのは非常に簡単です。

また、機能リクエストを送信し、グループへのリンクを投稿してください。ロギング呼び出しを無効にできることは有効な要求だと思います。ログが少し乱雑になる傾向があります。

于 2010-11-29T17:11:18.657 に答える
6

他の誰かが興味を持っている場合に備えて、Robert のモンキーパッチの提案を使用してログを削除する方法を次に示します。

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

これにより、元の save() 関数の「すべての例外を無視する」動作が保持されますが、その周りのすべてのログが削除されます。

于 2010-11-30T14:30:36.880 に答える
2

Appstatsの作者はこちら。なぜロギングを無効にしたいのですか?私はあなたがそうすべきではないと言っているのではありません-私はあなたの理由を理解していないのであなたがそれを無効にしたいと思っていることに驚いています。妥当なユースケースであれば、構成フラグを追加して無効にすることができます。

于 2011-08-31T21:44:50.493 に答える