Je souhaite envoyer la journalisation de l'application Rails à une base de données (MySQL ou MongoDB) en plus ou à la place d'un fichier journal. Il y a quelques raisons, dont la plupart sont préoccupées par l'analyse des fichiers journaux. Nous utilisons déjà Google Analytics, mais il y a une variété de choses que nous voulons faire qui ne sont pas aussi pratiques dans Google Analytics.Connectez-vous à la base de données à la place des fichiers journaux
En outre, je voudrais faire "en temps réel" enquête sur les problèmes en regardant les journaux. Passer au crible un fichier journal est une manière fastidieuse de le faire, et j'aimerais faire une meilleure recherche et un meilleur filtrage qu'un fichier journal (facilement). Finalement, je veux souvent examiner quelque chose de plus proche du comportement des visiteurs du site: traçage du chemin à travers le site par exemple, afin que je puisse voir quelle était la dernière page qu'un utilisateur regardait avant qu'une erreur se produise. Étant donné que nous avons plusieurs serveurs d'applications, les fichiers journaux distincts en font vraiment souffrir. Si toutes les données étaient dans une base de données, je pourrais alors facilement voir la bonne séquence de pages pour un visiteur donné. Je sais que Syslog serait un moyen de résoudre ce problème particulier (fichier journal/référentiel unique), mais je veux combiner cela avec de meilleures capacités de recherche que j'associe aux recherches dans les bases de données.
Je me demande ce que les gens recommandent pour résoudre ce problème. Est-ce que vous vous connectez directement à une base de données, ou est-ce que vous sauvegardez des fichiers journaux dans une base de données (mais quelle est votre approche pour que ce soit essentiellement en temps réel/aussi à jour que le fichier journal lui-même)?
Je suis actuellement en train de déterminer à quel niveau j'aimerais cette journalisation, car une autre chose que j'ai regardée est l'écriture d'un petit filtre Rack qui consignerait toutes les requêtes. Cela manquerait toute la sortie supplémentaire que la journalisation normale de Rails vide (tout le SQL et la sortie sur le cache frappe et manque, etc.), mais cela permettrait d'atteindre une grande partie de mon objectif, et semble avoir l'avantage de ne pas déranger autre chose dans le système.
De toute façon, je ne cherche pas une bonne réponse, plus d'une discussion et d'informations sur ce que quelqu'un d'autre pourrait faire dans cette même lumière.
Juste curieux, quelle est la particularité de la journalisation des applications Rails? Est-ce quelque chose comme des demandes d'enregistrement de journal d'accès Web? Ou est-ce la logique d'application réelle que vous voulez dire? – Dima
Voir les commentaires ci-dessous: Je suis plus intéressé par la journalisation au niveau de l'application, mais ce n'est pas entièrement nécessaire, mais je ne veux pas non plus enregistrer les fichiers statiques (images, CSS, etc.) servis par le serveur web. Nous utilisons Hoptoad pour la journalisation/notification des exceptions, ce qui est une excellente solution. Ma question est vraiment une demande/enquête sur ce que quelqu'un d'autre a mis en œuvre qui résout ce besoin ou un besoin similaire. – chrisrbailey
Comme une mise à jour à ce sujet, j'ai récemment expérimenté avec Papertrail. Ils ont une configuration très simple pour obtenir vos fichiers journaux (Rails, Nginx, ou n'importe quel type de fichier journal d'ailleurs), dans leur système, en temps réel, puis en texte intégral consultable. Ça a l'air plutôt prometteur. Ils sont encore en version bêta privée, mais prometteurs à coup sûr. Loggly a aussi du potentiel, mais j'ai trouvé que c'était lent, et que je n'arrivais pas à y insérer correctement des messages de log multi-ligne (peut-être que j'avais mal fait, mais je n'ai pas eu de réponse sur leur forum de support) . Graylog2 et logstash semblent aussi possibles. – chrisrbailey