|
|
|
| Как лучше перехватить ошибки, подавить вывод в интерфейс и записать в свой лог журнал. | |
|
|
|
|
|
|
|
для: Valleri
(29.12.2011 в 16:56)
| | Файл application/config/config.php настроить таким образом
/**
0 = отключает логирование
1 = записывает только сообщения с ошибками
2 = добавляются отладочные сообщения
3 = добавляются информационные сообщения
4 = добавляются все оообщения
**/
$config['log_threshold'] = 1;
/**
По умолчанию логи сохраняются в папку system/logs/
Либо, указывается свой путь к папке для лог-файлов.
Необходимо проверить права доступа у папки на запись
**/
$config['log_path'] = '';
|
Файл application/config/database.php
/**
TRUE - ошибки базы данных отображаются
FALSE - ошибки базы данных не отображаются
**/
$db['default']['db_debug'] = FALSE;
|
если правильно вас понял | |
|
|
|
|
|
|
|
для: сотка
(29.12.2011 в 17:07)
| | Вы наверное про какую-то базу или движок или...
Я о настройке PHP, что-бы не показывать ошибки пользователям, а записывать их в файл
[поправлено модератором] | |
|
|
|
|
|
|
|
для: Valleri
(29.12.2011 в 17:16)
| | А в чем выражается "не работа"? И где дело происходит (локальная машина, хостинг)? | |
|
|
|
|
|
|
|
для: cheops
(29.12.2011 в 17:17)
| | В данный момент локально под Денвером.
Я затер этот скрипт, стал разбираться вhttp://www.php.net/manual/ru/book.errorfunc.php
<?php
print_r(error_get_last());
?>
|
Вот в этом эксперименте, показывает какие-то замечания.
А в логе
WebServers\usr\local\apache\logs\error.log
| прописалась ошибка отсутствия файла ico?
[Thu Dec 29 16:45:44 2011] [error] [client 127.0.0.1] File does not exist: Z:/home/wr_board.ru/www/favicon.ico
|
Вот я и хочу её воспроизвести. | |
|
|
|
|
|
|
|
для: Valleri
(29.12.2011 в 17:26)
| | Это вам средствами Apache нужно отлавливать. Есть директивы, который позволяют повесить обработчики на HTTP-состояния, например,
ErrorDocument 404 /404.php
|
Возможно вас заинтересует статья по ссылке http://softtime.ru/article/index.php?id_article=25
Конкретно по выше-описанной ошибке, это браузер ищет иконку favicon.ico, которая выводится радом с адресом, подберите себя иконку, бросьте в корень сайта - ошибка исчезнет. Собственно, это даже не ошибка, а так... Apache просто фиксирует все обращения, к несуществующим файлам, обратитесь к любому другому файлу, которого у вас нет и Apache добросовестно запишет это обращение в журнал error.log. | |
|
|
|
|
|
|
|
для: Valleri
(29.12.2011 в 16:56)
| | 1. На прикладном уровне можно назначить свой собственный обработчик при помощи функции set_error_handler(), в своей собственной функцией хоть в файл, хоть в базу данных ошибки направляйте.
2. Если доступен php.ini, то следует отключить вывод ошибок и включить их журналирование. | |
|
|
|
|
|
|
|
для: cheops
(29.12.2011 в 17:16)
| | Я случайно заметил, что в файле error.log сервера Денвера \WebServers\usr\local\apache\logs\error.log
есть ошибки, которые не появляются никак ни в выводе в поток ни в других местах | |
|
|
|
|
|
|
|
для: Valleri
(29.12.2011 в 17:20)
| | Ммм... погодите, это журнал Web-сервера, PHP об этих ошибках может совершенно не знать и средств у него может не быть для доступа к ним... вернее есть расширение, но оно помоему не стандартное. В общем это чужие ошибки, не PHP, а другой системы. Точно также PHP ничего не знает об ошибках на стороне MySQL, если вы явно их не запросите. Точно также, PHP не доступны сообщения об ошибках операционной системы - там отдельный лог, к нему только администратор имеет доступ. Т.е. по умолчанию PHP отображает и перехватывает только то, что в его компетенции - сильно поворошить систему придется, чтобы он отображал все (и это подорвет безопасность). | |
|
|
|
|
|
|
|
для: cheops
(29.12.2011 в 17:25)
| | Что-то стало проясняться, а то сбился и дальше стал путаться.
Как правильно?
1. ini_set('display_errors', 0)
2. set_error_handler('user_log');
Мне не понятен полный текст
Нужна ли установка ini_set('display_errors', 0) или достаточно set_error_handler('user_log'); | |
|
|
|