Реклама на сайте Advertise with us

PHP логирование ошибок (оператор @)

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

нет судьбы

С нами с 27.03.03
Сообщения: 4427
Рейтинг: 4204


Передовик Master-X (16.07.2011) Передовик Master-X (16.10.2011) Передовик Master-X (01.11.2011) Передовик Master-X (16.11.2011) Передовик Master-X (01.01.2012) Ветеран трепа Master-X (16.02.2012)
Ссылка на сообщениеДобавлено: 04/05/15 в 11:32       Ответить с цитатойцитата 

В php в выражениях можно использовать оператор @ для подлавления сообщений об динамически выскакивающих ошибках. Например,
$result = @fopen('file.txt');
$a = @$_GET['a'];

1. Рассмотрим обратную ситуацию, например, я хочу во всём проекте сохранять все возможноные сообщения об ошибках в файл /logs/errors.log
Какую конструкцию нужно добавлять во все файлы проекта, чтобы можно было для всех ошибочных
$result = fopen('file.txt'); (без @) и подобных выражениях
получать\перенаправить сообщения в этот лог /logs/errors.log?
2. Можно ли разделить логи ошибок и предупреждений в разные файлы?
Наверняка есть готовое изящное решение в виде готового модуля..

1
 

Прожигатель жизни

С нами с 20.10.05
Сообщения: 942
Рейтинг: 638

Ссылка на сообщениеДобавлено: 04/05/15 в 11:52       Ответить с цитатойцитата 

Можно свой обработчик ошибок состряпать:
http://php.net/manual/ru/function.set-error-handler.php
который будет писать варнинги в один файл, ерроры в другой.

8
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 04/05/15 в 12:13       Ответить с цитатойцитата 

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

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

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

9
 



С нами с 11.10.12
Сообщения: 428
Рейтинг: 1032


Передовик Master-X (16.11.2012)
Ссылка на сообщениеДобавлено: 04/05/15 в 14:49       Ответить с цитатойцитата 

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

apache, bash, css, elasticsearch, ffmpeg, html, js, mysql, mongo, nginx, php; *nix only

10
 



С нами с 13.08.03
Сообщения: 533
Рейтинг: 481

Ссылка на сообщениеДобавлено: 05/05/15 в 09:13       Ответить с цитатойцитата 

и http://php.net/manual/ru/function.error-log.php тогда возьми на заметку до кучи
когда на морде ошибки показывать никак нельзя - а поотлаживаться в контрольных точках нужно

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »