2008-11-04 11 views
2

Je cherche la meilleure façon de personnaliser mes entrées de journal de Rails (je veux ajouter l'identification d'utilisateur là). J'utilise Rails 2.1.2. Le seul moyen que j'ai trouvé jusqu'ici est de surcharger la méthode "add" de la classe BufferedLogger (comme défini dans active_support/lib/active_support).Quelle est la meilleure façon d'ajouter un ID utilisateur aux entrées du journal RubyOnRails?

Mais ce n'est pas joli: je dois copier tout le code là-dedans et c'est étroitement lié à l'implémentation actuelle. Y a-t-il un meilleur moyen? J'ai trouvé ceci sur Google: http://pandejo.blogspot.com/2007/08/customize-logger-message-format.html mais il semble démodé. Un jour, je pourrais créer un journal d'audit spécifique, mais c'est trop pour ce dont j'ai besoin: http://maintainable.com/articles/rails_logging_tips#audit-logs Acclamations. Qu'est-ce que vous essayez de capturer, chaque action de chaque utilisateur, ou juste un sous-ensemble spécifique d'actions?

Répondre

0

Si un sous-ensemble un moyen rapide et sale serait d'utiliser simplement un appel de logger pour vider l'id de l'utilisateur dans le journal pour les actions que vous souhaitez suivre.

+0

L'ancien. Nous essayons de créer une sorte de piste de vérification. Votre approche q & d a été exclue. – Glenn

+0

jetez un oeil ici: http://railsforum.com/viewtopic.php?id=23540, pour construire un enregistreur personnalisé avec son propre fichier journal. –

+0

qui lie des points au même lien que dans la question d'origine. "overkill" pour l'instant. – Glenn

1

Vous pourriez ne Logger.INFO dans un after_filter dans votre application_controller:

after_filter :logging 
def logging 
    if logger && logged_in? 
    logger.info "UserID: #{current_user.id.to_s}" 
    end 
end 
Questions connexes