いくつかのオプションがあり、必要な情報量によって異なります。基本的なアクティビティ (各 Web サービスへの呼び出しの回数、ソース IP、ユーザー エージェント) だけを知りたい場合は、Apache ログにすべての情報が既に含まれています。CustomLog を使用して、必要なフィールドを追加します。たとえば、次のように追加できる Accept ヘッダーについて言及しました。
CustomLog logs/access_log "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\" \"%{Accept}i\""
%rの部分にはGET、POST、PUTなどが含まれます。
POST または PUT データに実際に含まれているものを知りたい場合は、さらに困難です。極端な解決策は、mod_dumpioモジュールを使用することです。これにより、すべてのクライアント入力 (すべてのヘッダー、すべての Cookie、すべての POST データ) がログに記録されます。人々が REST API を使用して画像をアップロードすると、良くも悪くも、ログに完全な画像が記録されます。それは非常に大きくなる可能性があります。
私が好む解決策は、PHP からログを記録することです。カスタム ログは、PHP スクリプトの先頭か、リクエストを処理するときに作成します。何をログに記録するか、分析するのが最も簡単な形式を完全に制御できます。また、コンテキストに入れることもできます (たとえば、テキスト データをログに記録し、イメージ バイトをログに記録しない)。開発中および小規模なサイトでは、Apache ロギングと並行してこれを行います。Apache が大量の CPU を使用している場合は、Apache のログを無効にするか、Apache を完全にバイパスします。(私は現在、php 5.4 の組み込み Web サーバーを評価しています。これはルーティングをサポートしているため、Web サービスに非常に適している可能性があります。)
ところで、サーバー ログの分析は、Google アナリティクスと並行して行うとよいでしょう。それぞれの精度を評価するのに役立ちます。