Нужно что бы Apache не перехватывал вывод error_log() из скриптов PHP (вызовы error_log делаются из кода скриптов явно). Это возможно без костыля в виде "ini_set('error_log', '/dev/null');"?
В коде существует переключалка, которая должна включать/отключать логирование в кастомный лог. В случае если сделан вызов "ini_set('log_errors', 0);", то все ошибки валятся в лог Apache - нужно, чтобы в этом случае они вообще никуда не валились.
Перехват ошибок PHP веб-сервером
Модератор: Модераторы разделов
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
-
KiWi
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: Перехват ошибок PHP веб-сервером
serzh-z, ты всё-таки лентяй
Как минимум одно из двух должно заработать.
; Log errors into a log file (server-specific log, stderr, or error_log (below))
; As stated above, you're strongly advised to use error logging in place of
; error displaying on production web sites.
log_errors = Off
; error_reporting is a bit-field. Or each number up to get desired error
; reporting level
error_reporting = 0
Как минимум одно из двух должно заработать.
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: Перехват ошибок PHP веб-сервером
Не спеши с ярлыками. В данной ситуации это ты поленился проверить собственные предположения.
Я же выше написал, что при log_errors=0, ошибки все равно перенаправляются в лог Apache.Заставит Apаche записать в error_log сообщение. Спасает лишь "ini_set('error_log', 'nul');" (nul, вместо /dev/null - потому что Apache/PHP на винде).
Я же выше написал, что при log_errors=0, ошибки все равно перенаправляются в лог Apache.
Код: Выделить всё
<?
ini_set('log_errors', 0);
error_reporting(0);
error_log('PREVED;]');
?>-
KiWi
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: Перехват ошибок PHP веб-сервером
А, ну да.
error_log не перехватывается.
Некритические ошибки нужно писать через trigger_error.
error_log не перехватывается.
Некритические ошибки нужно писать через trigger_error.
-
rws
- Сообщения: 206
- ОС: Ubuntu 7.10
Re: Перехват ошибок PHP веб-сервером
Попробуй так:
Код: Выделить всё
error_reporting(0);
if (function_exists('ini_set')) {
ini_set("display_errors", 0);
ini_set("log_errors", 0);
ini_set("html_errors", 0);
ini_set("ignore_repeated_errors", 1);
ini_set("ignore_repeated_source", 1);
}AMD Athlon 64 X2 4200+/2GB RAM/250GB HDD/GeForce 7600GT 256MB/ZyXEL P-660RT EE
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: Перехват ошибок PHP веб-сервером
Типа все и сразу - авось прокатит...
-
rws
- Сообщения: 206
- ОС: Ubuntu 7.10
Re: Перехват ошибок PHP веб-сервером
Типа все и сразу - авось прокатит...
Да нет
Код: Выделить всё
ini_set("log_errors", 0);Код: Выделить всё
log_errors = OffAMD Athlon 64 X2 4200+/2GB RAM/250GB HDD/GeForce 7600GT 256MB/ZyXEL P-660RT EE
-
KiWi
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: Перехват ошибок PHP веб-сервером
Совет -- читать тему перед ответом: http://linuxforum.ru/index.php?s=&show...st&p=377220
P.S.: serzh-z, а в чём проблема-то поreplaceть error_log на trigger_error?
Просто, ИМХО, error_log создавать как функция для модулей(где она используется для критических ошибок) и в php её выкинули просто из-за того, что не впадлу было :-)
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: Перехват ошибок PHP веб-сервером
Про trigger_error не знал. Забавная вещь, хотя и не совсем то (слишком много мусора в лог пишет, в отличии от error_log), а так же потребует пересмотра всего существующего кода.
Заодно выяснил по коду PHP, что директива "log_errors = Off" не отключает вывод всех ошибок, отправленных через функцию error_log(), а всего лишь отдает их на обработку SAPI-модулю Apache/PHP (SO/DLL: php_apache2).
Заодно выяснил по коду PHP, что директива "log_errors = Off" не отключает вывод всех ошибок, отправленных через функцию error_log(), а всего лишь отдает их на обработку SAPI-модулю Apache/PHP (SO/DLL: php_apache2).
-
KiWi
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус