2013-08-25 3 views
0

Я запускаю сайт с процессом siginup/login. и мне нравится вставлять идентификаторы пользователей, когда пользователь регистрируется на моем сайте или на нем. Мой апач access.log как в следующем:Настройка журналов Apache

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)" 

я могу ясно видеть, что HTTP запрос был отправлен из какого адреса IP. Но если я помещу идентификатор пользователя (например, $ 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)" 

ответ

0

Если вы используете HTTP Basic или Digest аутентификацию, то имя пользователя выводится из заголовка HTTP и может быть вставлен в журнал с помощью %u в LogFormat в вашей конфигурации apache. Если у вас есть система входа в систему, которая не включает имя пользователя в заголовке (вероятно), то единственным другим вариантом, о котором я знаю, было бы как-то установить переменную среды, которую Apache мог бы выписать с помощью %{FOOBAR}e. См http://httpd.apache.org/docs/2.2/logs.html

В противном случае, вы, вероятно, лучше писать свой собственный файл журнал из кода приложения (или использовать протоколирование библиотеки на уровень приложений -. Log4j, или что-то)

+0

спасибо за быстрый ответ. Это было бы большой помощью. – user1942626

+0

Я прочитал статью журнала apache. но я не знаю, где установить свою собственную переменную и использовать ее. Не удается найти пример кода. Можете ли вы привести мне пример? Я беспокоюсь, что моя глупая попытка вызовет какие-либо проблемы с системой. – user1942626

+0

Является ли ваш вход с помощью аутентификации HTTP Basic или Digest? Чтобы использовать% u, это должно быть. В противном случае это ваши основные параметры для настройки переменных среды: http://httpd.apache.org/docs/2.2/env.html –

Смежные вопросы