2009-07-01 2 views
2

Я пытаюсь выяснить, как лучше вести журнал ошибок в рельсах, используя базу данных (в данном случае MySQL) в качестве бэкэнд.Ошибка входа в Rails с использованием MySQL

Похоже, что два популярных каркаса каротажа в рельсах - это встроенный каркас Logger и Log4r.

Однако, насколько я могу судить, ни одна из этих баз данных не регистрируется в базе данных без написания какого-либо пользовательского кода (что может быть или не быть легким - я просто не хочу начинать с этого пути, если есть уже хорошо понятное решение).

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

ответ

2

Exception Logger регистрирует исключения, которые вы не обрабатываете. Если это то, что вы хотите, я бы просто использовал hoptoad (http://hoptoadapp.com), так как он очень хорошо справляется с этим.

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

1

Вы можете использовать syslog-ng, он очень гибкий и может быть подключен к рельсам.

соединительные рельсы системный журнал-нг: unified rails logging with syslog ng

делает системный журнал-нг использовать MySQL БД бэкэнда: Centralized syslog-ng to Mysql