Registrar no banco de dados em vez de nos arquivos de log

Estou interessado em enviar todos os registros de aplicativos do Rails para um banco de dados (MySQL ou MongoDB), além de, ou em vez de, para um arquivo de log. Existem algumas razões, a maioria das quais está preocupada com a análise de arquivos de log. Já usamos o Google Analytics, mas há uma variedade de coisas que queremos fazer que não são tão viáveis ​​no Google Analytics.

Além disso, eu gostaria de fazer uma investigação "em tempo real" dos problemas observando os logs. Examinar um arquivo de log é uma maneira tediosa de fazer isso, e eu gostaria de fazer uma pesquisa e uma filtragem melhores do que um arquivo de log (facilmente) permite.

Por fim, muitas vezes quero examinar algo mais próximo do comportamento do visitante do site: traçar o caminho pelo site, por exemplo, para que eu possa ver qual era a última página que um usuário estava olhando antes de ocorrer um erro. Como temos vários servidores de aplicativos, os arquivos de log separados tornam isso muito difícil. Se todos os dados estivessem em um banco de dados, eu poderia facilmente ver a seqüência correta de páginas para um determinado visitante. Eu sei que o Syslog seria uma maneira de resolver essa coisa em particular (arquivo de log único / repositório), mas quero combiná-lo com melhores habilidades de pesquisa que associo a pesquisas de banco de dados.

Eu estou querendo saber o que as pessoas recomendam para resolver isso. Você faz o log diretamente em um banco de dados ou despeja arquivos de log em um banco de dados (mas qual é a sua abordagem para isso, para que seja essencialmente em tempo real / atualizado como o próprio arquivo de log)?

Eu estou atualmente determinando em que nível eu gostaria desse registro, porque outra coisa que eu olhei é escrever um pequeno filtro Rack que registraria todos os pedidos. Isso perderia toda a saída extra que o registro normal do Rails despeja (todo o SQL e a saída em acertos e erros do cache, etc.), mas alcançaria uma grande parte do meu objetivo, e parece ter a vantagem de não perturbar qualquer outra coisa no sistema.

De qualquer forma, não estou procurando uma resposta certa, mais uma discussão e informações sobre o que qualquer outra pessoa poderia estar fazendo nessa mesma perspectiva.

questionAnswers(6)

yourAnswerToTheQuestion