Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: PHP логирование ошибок (оператор @)
цитата
04/05/15 в 11:32
 Vyacheslav
В php в выражениях можно использовать оператор @ для подлавления сообщений об динамически выскакивающих ошибках. Например,
$result = @fopen('file.txt');
$a = @$_GET['a'];

1. Рассмотрим обратную ситуацию, например, я хочу во всём проекте сохранять все возможноные сообщения об ошибках в файл /logs/errors.log
Какую конструкцию нужно добавлять во все файлы проекта, чтобы можно было для всех ошибочных
$result = fopen('file.txt'); (без @) и подобных выражениях
получать\перенаправить сообщения в этот лог /logs/errors.log?
2. Можно ли разделить логи ошибок и предупреждений в разные файлы?
Наверняка есть готовое изящное решение в виде готового модуля..
цитата
04/05/15 в 11:52
 Anab0L1k
Можно свой обработчик ошибок состряпать:
http://php.net/manual/ru/function.set-error-handler.php
который будет писать варнинги в один файл, ерроры в другой.
цитата
04/05/15 в 12:13
 Stek
Как простой вариант, подавить вывод на экран и писать в файл. Тогда никакие @ не нужны.

error_reporting(E_ALL);
ini_set('display_errors',0);
ini_set("error_log", "/tmp/php-error.log");
цитата
04/05/15 в 14:49
 johndoe2
Stek писал:

Как простой вариант, подавить вывод на экран и писать в файл. Тогда никакие @ не нужны.

error_reporting(E_ALL);
ini_set('display_errors',0);
ini_set("error_log", "/tmp/php-error.log");


для ini_set("error_log",...) нужно ini_set('log_errors',1);
цитата
05/05/15 в 09:13
 dm
и http://php.net/manual/ru/function.error-log.php тогда возьми на заметку до кучи
когда на морде ошибки показывать никак нельзя - а поотлаживаться в контрольных точках нужно


Эта страница в полной версии