Как я регистрирую неперехваченные исключения в PHP?

Кажется, что синтаксически более простой способ и, следовательно, легче запомнить, в отличие от предлагаемых решений. Я предполагаю, что столбец называется «мета» в dataframe df:

df2 = pd.DataFrame(df['meta'].str.split().values.tolist())
11
задан Marius 21 August 2008 в 15:54
поделиться

7 ответов

Я действительно как log4php для входа, даже при том, что это еще не вне инкубатора. Я использую log4net в примерно всем и нашел стиль довольно естественным для меня.

Относительно системных катастрофических отказов можно зарегистрировать ошибку нескольким местам назначения (например, иметь appenders, порог которого ОЧЕНЬ ВАЖЕН или ОШИБКА, которые только играют роль, когда вещи идут не так, как надо). Я не уверен, насколько отказоустойчивый существующие appenders - если база данных снижается, как делает это сбой appender? - но Вы могли довольно легко записать свой собственный appender, который перестанет работать корректно, если это будет не мочь зарегистрироваться.

5
ответ дан 3 December 2019 в 06:00
поделиться

Вы могли использовать set_error_handler для установки пользовательского исключения для входа ошибок. Я лично рассмотрел бы хранение их в базе данных, поскольку след Обработчика исключений по умолчанию может предоставить информацию о том, что вызвало его - это, конечно, не будет возможно, если обработчик баз данных инициировал исключение как бы то ни было.

Вы могли также использовать error_log для входа ошибок. Это имеет выбор мест назначения сообщения включая:

Заключенный в кавычки из error_log

  1. Системный регистратор PHP, с помощью системного механизма входа Операционной системы или файла, в зависимости от того, на что установлена error_log конфигурационная директива. Это - опция по умолчанию.
  2. Отправленный по электронной почте в адрес в целевом параметре. Это - единственный тип сообщения, где четвертый параметр, extra_headers используется.
  3. Добавленный месту назначения файла. Новая строка автоматически не добавляется в конец строки сообщения.

Править: Скидка с цены имеет тег noparse для символов нижнего подчеркивания?

11
ответ дан 3 December 2019 в 06:00
поделиться

Просто запись их в файл не будет полезна, не так ли?

Но конечно это - это - большая вещь сделать, намного лучше, чем отображение их на экране. Вы хотите показать пользователю хороший экран, который говорит "Извините, что мы попали впросак. Инженеры были уведомлены. Возвратитесь и попробуйте еще раз" и АБСОЛЮТНО НИКАКАЯ ТЕХНИЧЕСКАЯ ДЕТАЛЬ, потому что сделать так было бы угрозой безопасности. Можно послать электронное письмо общему почтовому ящику и зарегистрировать исключение в файл или DB для обзора позже. Это было бы лучшей практикой.

3
ответ дан 3 December 2019 в 06:00
поделиться

Я записал бы им в файл - и возможно настроил бы систему контроля для проверки на изменения в размере файла или измененной в последний раз дате. Webmin является одним простым способом, но существует больше полных программных продуктов.

Если Вы знаете, что это - одноразовая ошибка, то пользование электронной почтой уведомления может быть прекрасным. Однако со многими хитами на мелкий веб-сайт, никогда не посылайте уведомление по электронной почте. Я видел веб-сайт, сниженный при наличии сотен электронных писем в минуту, сгенерированную, чтобы сказать, что система не могла соединиться с базой данных. То, что это также имело LoadAvg> 200 из-за почтового сервера, выполняемого для каждого нового сообщения, не помогло вообще. В том экземпляре - лучший сценарий был, безусловно и далеко, сторожевая проверка размеры файла и соединение с внешним сервисом для отправки SMS (возможно, IM), или наличие внешней системы считает веб-страницу для сообщения об ошибке (который не должен быть видим на экране - это может быть в комментарии HTML).

1
ответ дан 3 December 2019 в 06:00
поделиться

Я думаю, что это во многом зависит того, где Ваша ошибка произошла. Если DB снижается на вход, это к DB не хорошая идея ;)

Я использую системный журнал () функция для входа ошибки, но у меня нет проблем при записи этого в файл, когда я нахожусь в системе, которая не имеет никакой поддержки системного журнала. Можно легко настроить систему для отправки Вам электронного письма или сообщения бессмысленных данных, использующего, например, logwatch или стандарта syslogd.

0
ответ дан 3 December 2019 в 06:00
поделиться

Я второй log4php. Мне обычно настраивали его, чтобы отправить вещи как исключения к ОШИБКЕ или CRITITCAL и иметь их записанный в системный журнал. Оттуда, у Вас может быть свой канал системного журнала в Zenoss, Nagios, Splunk или что-либо еще, с чем может говорить системный журнал.

0
ответ дан 3 December 2019 в 06:00
поделиться

Вы также можете перехватывать и записывать исключения PHP с помощью Google Forms. Здесь есть руководство , которое объясняет этот процесс.

0
ответ дан 3 December 2019 в 06:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: