0

サインアップ/ログインプロセスを使用して Web サイトを実行しています。ユーザーがサインアップするとき、または自分の Web サイトにログインするときに、ユーザー ID を挿入するのが好きです。私のApache access.logは次のとおりです。

115.137.10.87 - - [26/Aug/2013:07:38:52 +0900] "GET /api/game/ HTTP/1.1" 200 1402 "-" "android-async-http/1.4.3 (http://loopj.com/android-async-http)"
115.137.10.87 - - [26/Aug/2013:07:38:59 +0900] "GET /api/premium/brand HTTP/1.1" 200 721 "-" "android-async-http/1.4.3 (http://loopj.com/android-async-http)"
115.137.10.87 - - [26/Aug/2013:07:38:59 +0900] "GET /api/brand/ HTTP/1.1" 200 2510 "-" "android-async-http/1.4.3 (http://loopj.com/android-async-http)"
115.137.10.87 - - [26/Aug/2013:07:39:00 +0900] "GET /api/game/ HTTP/1.1" 200 1402 "-" "android-async-http/1.4.3 (http://loopj.com/android-async-http)"

どの IP アドレスからどの HTTP リクエストが送信されたかがはっきりとわかります。しかし、このログにユーザー ID (例: $userid) を入れると、素晴らしいログになり、意思決定のための優れた統計情報を得ることができます。

可能であれば、これを行う方法はありますか?アドバイスをいただければ幸いです。

ログは次のようになります。

115.137.10.87 - - [26/Aug/2013:07:38:52 +0900] "***[USERID]*** GET /api/game/ HTTP/1.1" 200 1402 "-" "android-async-http/1.4.3 (http://loopj.com/android-async-http)"
4

1 に答える 1

0

HTTP 基本認証またはダイジェスト認証を使用している場合、ユーザー名は HTTP ヘッダーから取得され、Apache 構成のディレクティブで使用%uしてログに挿入できます。LogFormatヘッダーにユーザー名が含まれていないログインシステムを使用している場合 (おそらく)、私が知っている他の唯一のオプションは、Apache が%{FOOBAR}e. http://httpd.apache.org/docs/2.2/logs.htmlを参照してください。

それ以外の場合は、アプリケーション コードから独自のログ ファイルを書き出すことをお勧めします (または、アプリケーション レベルのログ ライブラリ (Log4j など) を使用します)。

于 2013-08-25T23:08:33.633 に答える