Не срабатывает запись в лог файл при заходе пользователя:(

evshi

Новичок
В самое начало страницы добавил ПХП код, записывающий в текстовый файл текущий URL пользователя.
Вот код:
$filename = $_SERVER["DOCUMENT_ROOT"].'/log.txt';
if (file_exists($filename)) {
file_put_contents($filename, ' URL: '.$_SERVER['REQUEST_URI'], FILE_APPEND | LOCK_EX);
}

Проблема в том, что некоторые заходы пользователя почему-то не пишутся в файл, при этом в access_log эти заходы есть. error_log пустой.

Уже сломал голову:( Из-за чего это может быть? В какую сторону копать?
 
Последнее редактирование:

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Скриншоты твои никто смотреть не будет.
 

evshi

Новичок
А ты вообще проверяешь результаты записи в файл? Где?
Результат записи в файл не проверял. Подойдёт ли проверка к file_put_contents() и отправка на почту, если не выполнена ф-ия?

Что-то вроде такого:

$filename = $_SERVER["DOCUMENT_ROOT"].'/log.txt';
if (file_exists($filename)) {
if (!file_put_contents($filename, ' URL: '.$_SERVER['REQUEST_URI'], FILE_APPEND | LOCK_EX)) mail ("[email protected]", "Error writing file", "Error writing file");
}
 

AnrDaemon

Продвинутый новичок
Больше пойдёт отказ от записи в отдельный файл вообще.
Есть же акцесс логи.
 

fixxxer

К.О.
Партнер клуба
А ты уверен, что при этих некоторых заходах вообще дело доходит до php?
Там 200-е в логе?
И уверен, что доходит до твоего кода?

И разберись с логами ошибок. Совсем пустой error log это странно :) Вызови явную ошибку и посмотри, пишется ли.
 

evshi

Новичок
А ты уверен, что при этих некоторых заходах вообще дело доходит до php?
Думаю что доходит, т.к. а) заход зафиксирован в access log, ответ 200 ОК, б) в Яндекс.Метрике есть отчёт, называется Вебвизор. Он записывает и показывает активность пользователя на странице. Так в этом отчёте видно, что страница загружена полностью, пользователь скролит её, смотрит картинки на странице и т.д.

Там 200-е в логе?
Да.

И разберись с логами ошибок. Совсем пустой error log это странно :) Вызови явную ошибку и посмотри, пишется ли.
Не, ну что-то там есть конечно, но по теме ошибок нет.

Уже бесячка начинается, ну просто не могу понять, из-за чего это может быть и что ещё можно предпринять:((((( Первоначально у меня запись всех заходов была в БД, там заметил пропуски первого захода. Чтобы отсечь фактор БД сделал просто запись в файл (см. начало темы). Но и он не выполняется. Ощущение, что проблема не с записью в БД или в файл, а в чём-то другом. Но в чём:((((
 

evshi

Новичок
это еще не показатель, вызов картинки к примеру пожходит под оба ответа но до php может и не дойти
Понятно, что такое может быть. Но у нас сама страница через PHP генерируется и раз она зафиксирована в access логе с 200 ок, то получается через php она прошла.

Есть ли ещё идеи, как можно продиагностировать данную проблему?
 

Andkorol

Новичок
Частота заходов высокая?
Возможно, причина в блокировке файла на время записи (LOCK_EX)?
 

AnrDaemon

Продвинутый новичок
Используй error_log().

P.S.
Хотя логировать можно и кукисы, ЕМНИП.
 
Сверху