Двойная запись в файл!

PHP*
pastebin.com/5tAcX23s

При IN_DEV = 1, т.е. включенном дебаге — все отлично работает.
Ставлю IN_DEV = 0, все отрабатывает хорошо, запись в лог идет, сообщение выводится правильно, но сообщение об ошибке записывается дважды!

Пробовал переписать код строк 57-62 через SplFileObject — тоже самое.

winxp sp3, php 5.3

В чем может быть проблема?
1 февраля в 12:44
Miraage 6,2
У вас apache или nginx? Norraxx,
Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/0.9.8r PHP/5.3.9 Miraage,

отсортировано по дате по оценке
ответы (6)

0
Miraage #
Вы не поверите… Вставил в лог данные из REQUEST_URI. Получил в логе:
--------------------------------------------------------------------------------
pewpew
Request data: /
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
pewpew
Request data: /favicon.ico
--------------------------------------------------------------------------------

Создал файл favicon.ico — все стало отлично работать. Магия какая-то… :)
И, как вы могли догадаться, на сервере был включен mod_rewrite. Miraage, 16 февраля в 14:08
0
den1n #
Попробуйте добавить в оба обработчика строки (перед обработкой ошибки):
restore_error_handler();
restore_exception_handler();
И строки 57-62 можно заменить одной строкой кода:
error_log($msg, 3, DEV_LOG);
den1n, 1 февраля в 14:14
насчет рестора думал, но там явно нету ошибок.
еррор_лог попробую, отпишусь позже.
Miraage, 1 февраля в 18:36
error_log тоже дважды пишет. да что за магия! Miraage, 2 февраля в 10:34
Протестировал ваш класс таким образом:

	require 'Debug.php';

	define('IN_DEV', 0);

	Debug::main();

	$str = '';
	array_pop($str); // error

В лог попала одна запись.

Apache 2.2.19 (win 32, no_ssl), PHP 5.3.9.
den1n, 3 февраля в 19:32
0
IngvarrT #
Я даже больше скажу. Если туда поместить

file_put_contents(DEV_LOG. microtime(true), $msg. microtime(true). $sep, FILE_APPEND);

, то создастся два файла :)
А причина, почему происходит двойная запись, Вам известна? Miraage, 3 февраля в 10:06
Я же не изверг какой-нибудь. Была б известна причина — написал бы. IngvarrT, 3 февраля в 12:22
Пойду-ка я на багз пхп нэт Miraage, 3 февраля в 12:23
+1
Miraage #
Шутки ради скажу, что это 666-ой вопрос с тэгом PHP. Истина где-то рядом…
0
MisterX #
Может проблема не в этом классе? А в коде который выше? Возможно вы где-то в двух местах этот класс используете одновременно, поэтому две записи?
0
Alert #
Прошло 5 дней и вероятно багу вы уже исправили, но всё же напишу.
Вы уверены что скрипт запускается только 1 раз?
Была похожая проблема, мучался и ковырялся долго, а в итоге оказалось что был какой-то кривой плагин к Firefox который каждый запрос выполнял по 2 раза.
Попробуйте потестировать такой вариант.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.