Регистрация php, журнал ошибок и настройка - PullRequest
0 голосов
/ 07 января 2012

У меня есть крупное php-приложение корпоративного масштаба с множеством обращений к error_log.

Я думаю, что иногда, когда создаются исключения, журнал ошибок заполняет диск и вызывает проблемы с сервером.

Как я могу лучше использовать мои утилиты регистрации в php?В частности, я мало знаю о том, как функционал php error_log управляется и используется в реальном мире.

Существуют ли другие механизмы ведения журналов, которые более подходят?Как info_log или утилита истечения срока действия журнала, которая будет удалять / вращать файлы журнала, когда они станут слишком большими?Наконец, я могу иметь несколько файлов журнала?

Ответы [ 2 ]

3 голосов
/ 07 января 2012

Ну, для начала, не все ошибки должны регистрироваться.Если ошибка может быть устранена в программном обеспечении (90% из них должны быть, а остальные 50% [извините русских: P] должны отсутствовать).Должна существовать только небольшая часть (связанная с ошибками ввода), и они все равно не должны регистрироваться.

Используйте исключения вместо того, чтобы полагаться на ошибки, исключения можно обрабатывать, а когда они не возникают, они останавливаютскрипт.Расширьте класс Exception, чтобы разрешить больше типов исключений (InvalidArgumentException, MathException, LoggedErrorException), проявите творческий подход, я создал целую 30 библиотек типов исключений.Просто убедитесь, что вы делаете все правильно!

Кроме того, error_log будет регистрировать множество деталей, с использованием исключений, вы можете регистрировать все, что захотите.См. Функции файловой системы .

1 голос
/ 07 января 2012

На мой взгляд, error_log достаточно хорош и предоставляет нам достаточную функциональность.Да, у вас может быть несколько файлов журналов, вам просто нужно управлять ими. :) Например, вы можете использовать что-то вроде этого:

ini_set('error_log','my_error_file.log');

А насчет автоматического удаления, я думаю, что использовать преимущества нетerror_log, если вы действительно хотите сделать автоматическое удаление.Вам лучше куда-нибудь их сбросить, или просто отключить / минимальный выход из системы с помощью error_reporting в php.ini.

И, наконец, вы можете написать свой собственный класс журналирования, который на самом деле является очень простым и фантастическим решением, потому что он будетбыть очень коротким фрагментом кода и действительно работать по вашей воле.Я обычно делаю то же самое.Спасибо:)

...