Myślę, że potrzebujesz rejestrowania kryminalistycznego, zobacz ten link: http://httpd.apache.org/docs/current/mod/mod_log_forensic.html
skrawek:
Format dziennika kryminalistycznego:
Każde żądanie jest rejestrowane dwa razy. Pierwszy raz jest zanim zostanie przetworzony dalej (to znaczy po otrzymaniu nagłówków). Drugi wpis dziennika jest zapisywany po przetworzeniu żądania w tym samym czasie, w którym następuje normalne rejestrowanie.
Aby zidentyfikować każde żądanie, przypisywany jest unikalny identyfikator żądania. Ten identyfikator sądowy może być rejestrowany krzyżowo w normalnym dzienniku transferu przy użyciu ciągu formatu% {forensic-id} n. Jeśli używasz mod_unique_id, zostanie użyty wygenerowany identyfikator.
Pierwszy wiersz rejestruje identyfikator sądowy, wiersz żądania i wszystkie odebrane nagłówki, oddzielone znakami potoku (|). Przykładowa linia wygląda następująco (wszystkie w jednym wierszu):
+ yQtJf8CoAB4AAFNXBIEAAAAA | GET /manual/de/images/down.gif HTTP / 1.1 | Host: localhost% 3a8080 | Agent użytkownika: Mozilla / 5.0 (X11; U; Linux i686; en-US; rv% 3a1.6) Gecko / 20040216 Firefox / 0.8 | Akceptuj: obraz / png itp.
Znak plus na początku wskazuje, że jest to pierwszy wiersz dziennika tego żądania. Drugi wiersz zawiera tylko znak minus i identyfikator:
-yQtJf8CoAB4AAFNXBIEAAAAA
Skrypt check_forensic przyjmuje jako argument nazwę pliku dziennika. Szuka tych par +/- ID i narzeka, jeśli prośba nie została zakończona.