Rails - регистрация ошибок сервера в БД - PullRequest
0 голосов
/ 19 марта 2012

Если я получу 500 ошибок в журналах сервера, я бы предпочел сохранить их в БД в таблице, такой как server_errors (id, user_id, made_at, build_version, error_code, error_output).

Моя первоначальная идея состоит в том, чтобы просто запустить скрипт, который постоянно ищет в log / production.log ошибки и сохраняет их в БД по мере их поступления, но это кажется уродливым решением и становится громоздким, когда вы рассматриваете такие вещи, как ротация журнала и т.д.

Это кажется достаточно распространенной функцией, для которой должен быть драгоценный камень или некоторая стандартная функциональность, встроенная в Rails (2.3.12), поэтому я надеялся, что кто-то может знать что-то подобное. Или может предложить лучшую методологию, если вы можете придумать одну.

1 Ответ

2 голосов
/ 20 марта 2012

Большинство людей используют уведомление_исключения , RPM NewRelic или AirBrake (ранее известное как Hoptoad), чтобы увидеть свои исключения.

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

Для фоновой очереди посмотрите, как это делает resque .

Если вы используете Rails 2.3, вы должны использовать 2-3-стабильную ветвь в уведомлении об исключении вместо основной ветки.

...