2012-01-12 12 views
2

私は、後で分析するためにいくつかの統計を記録したいが、アプリケーション自体の中では全く必要ではないアプリケーションがあります。つまり、アプリケーションによってデータを読み取る必要はありません。これらの統計情報を保存するためにどのようなシステムが使用されても、データの定期的なダンプを取るだけで済みます。AppEngineのカスタムログ

AppEngineに組み込まれたログを使用することはできましたが、アプリケーションログに表示されます。私はそれらをチェックするたびに他のカスタム情報を見る必要なく、アプリケーションをデバッグするためのアプリケーションログを保持したいと思います。

どうすればよいですか?

編集:統計情報の詳細。ユーザーが特定のタスク(1日に1〜3回)を完了するたびに、そのタスクに関する詳細を保存する必要があります。イベントの時間や順序など。これらはセッションごとに1つの文字列に格納されます(1-2kB)。

+0

AppEngine自体についてはわかりません。別の(カスタム)ロガーを追加して別のログのヘルプに書き込むのですか?または、実際にデータをシリアル化して後で検査することについて話していますか? –

+0

特にAppEngine内にある必要はありません(ただしこれはすばらしいことです)。 – JohnGB

+0

あなたは、あなたが話している統計情報の種類とこれらの出来事の頻度についてさらに詳しく説明できますか? –

答えて

3

私のアプリでも同様のログが記録されていました。ログの文字列とレベルを受け取り、ローカルデータベースに保存する自己ホスト型サーバーに簡単なサーブレットを設定しました。この種のログが必要になるたびに、私は非同期URLFetchを使用して、アプリケーションからログサーバーにデータを送信します。

ログデータをデータストアに保存することはできましたが、ログファイルの全文検索を行うことができなくなりました。また、ログを外部ファイルに保存し、grepだけ必要な行を保存することもできます。

2

このデータをデータストアに保存することをお勧めします。レイテンシが懸念される場合は、非同期操作を使用してできるだけ早く書き込みを開始するか、タスクキューを使用して書き込みをオフラインで行うことができます。

+0

エンティティグループの1書き込み/秒(推奨)の制限をすぐに超えてしまうため、並行処理の問題に遭遇しませんか? – JohnGB

+0

@ JohnGB:ログエンティティを子なしでルートエンティティにすることができると思います。これにより、各ログエンティティは単独でエンティティグループになります。 http://code.google.com/appengine/docs/python/datastore/entities.html#Entity_Groups_and_Ancestor_Paths –

+0

の4番目の段落を参照してください。@IbrahimArief:ログエンティティには、書き込み回数が1を超えると問題が発生します/秒。ユーザーが持つセッションごとにログイベントがトリガーされるため、この制限を超過する可能性は非常に高くなります。 – JohnGB

関連する問題