Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
895
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
906
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4351
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Как я могу регистрировать необнаруженные исключения в PHP?
Я выяснил, как преобразовать ошибки в исключения, и я хорошо отображаю их, если они не пойманы, но я не знаю, как их правильно регистрировать. Просто записать их в файл не будет полезно, не так ли? И вы бы рискнули получить доступ к базе данных, когда вы еще не знаете, что вызвало исключение?
Вы можете использовать set_error_handler для установки пользовательского исключения для регистрации ваших ошибок. Я лично рассматриваю возможность хранения их в базе данных, поскольку обратная трасса обработчика исключений по умолчанию может предоставить информацию о том, что вызвало это - это, конечно, не будет возможно, если обработчик базы данных вызвал исключение, однако.
Вы также можете использовать error_log для регистрации своих ошибок. Он имеет возможность выбора адресатов сообщений, включая:
Цитировал функцию error_log
- Системный регистратор PHP, использующий системный механизм ведения журнала операционной системы или файл, в зависимости от того, на что настроена директива конфигурации error_log. Это опция по умолчанию.
- Отправляется email по адресу, указанному в параметре destination. Это единственный тип сообщения, в котором используется четвертый параметр, extra_headers.
- Добавлено к файлу назначения . Новая строка не добавляется автоматически в конец строки сообщения.
Edit: есть ли у markdown тег noparse для подчеркивания?
Мне очень нравится log4php для ведения журнала, хотя он еще не вышел из инкубатора. Я использую log4net практически во всем, и нашел этот стиль вполне естественным для меня.
Что касается системных сбоев, то вы можете регистрировать ошибку в нескольких местах назначения (например, иметь приложения с порогом CRITICAL или ERROR, которые вступают в игру только тогда, когда что-то идет не так). Я не уверен, насколько надежны существующие аппендеры-если база данных не работает, как этот аппендер выходит из строя?-- но вы вполне можете написать свой собственный аппендер, который изящно провалится, если он не сможет войти в систему.
Просто записать их в файл не будет полезно, не так ли?
Просто записать их в файл не будет полезно, не так ли?
Но конечно же это так - это отличная вещь, гораздо лучше, чем показывать их на экране. Вы хотите показать пользователю красивый экран, на котором написано: "Извините, мы облажались. Инженеры были уведомлены. Вернитесь и попробуйте еще раз", и абсолютно никаких технических деталей, потому что это было бы угрозой для безопасности. Вы можете отправить email в общий почтовый ящик и записать исключение в файл или DB для последующего просмотра. Это было бы лучшей практикой.
Я бы записал их в файл - и, возможно, установил бы систему мониторинга, чтобы проверить изменения в размере файла или дату последнего изменения. Webmin - это один из простых способов, но есть и более полные программные решения.
Если вы знаете, что это одноразовая ошибка, то отправка уведомления по электронной почте может быть прекрасным. Однако, с большим количеством посещений в минуту веб-сайта, никогда не email уведомление. Я видел веб-сайт, обрушившийся из-за того, что сотни писем в минуту генерируются, чтобы сказать, что система не может подключиться к базе данных. Тот факт, что он также имел LoadAvg из > 200 из-за того, что почтовый сервер запускался для каждого нового сообщения, совсем не помогал. В этом случае лучшим сценарием была, безусловно, проверка сторожевого пса на наличие файлов и подключение к внешней службе для отправки SMS (возможно, IM), или поиск внешней системой на веб - странице сообщения об ошибке (которое не обязательно должно быть видно на экране-оно может быть в комментарии HTML).
Я думаю, что это во многом зависит от того, где произошла ваша ошибка. Если DB не работает протоколирование его в DB не является хорошей идеей ;)
Я использую функцию syslog() для регистрации ошибки, но у меня нет проблем с записью ее в файл, когда я нахожусь в системе, которая не имеет поддержки системного журнала. Вы можете легко настроить свою систему для отправки вам сообщения email или jabber, используя, например, logwatch или стандартный syslogd .