Inclure params / demande d'informations dans Rails logger?
Je vais essayer d'obtenir plus d'information sur mes Rails de journaux, plus précisément l'URI de la requête ou de courant params, si disponible (et j'apprécie qu'il n'est pas toujours le cas). Cependant, je ne semblent pas en mesure de. Voici ce que j'ai fait jusqu'à présent:
#config/environments/production.rb
config.logger = Logger.new(config.log_path)
config.log_level = :error
config.logger.level = Logger::ERROR
#config/environment.rb
class Logger
def format_message(level, time, progname, msg)
"**********************************************************************\n#{level} #{time.to_s(:db)} -- #{msg}\n"
end
end
Donc je peux personnaliser le message d'amende, mais je ne semble pas être en mesure d'accéder aux paramètres/variables de requête ici. Personne ne sait si cela est possible, et si oui, comment? Ou si il ya une meilleure façon d'obtenir cette information? (Peut-être même quelque chose Redis?)
Grâce charges,
Dan
source d'informationauteur Dan Hill
Vous devez vous connecter pour publier un commentaire.
(Réponse un long moment après que cela a été demandé, mais il se peut que la prochaine personne.)
J'ai juste fait quelque chose de similaire.
1) vous avez besoin de remplacer votre enregistreur séparément de journalisation demande-leve de détails. On dirait que vous avez compris la personnalisation de votre enregistreur. La réponse est ici:
Rails enregistreur de chaîne de format de configuration
2) je journal de la demande et de la réponse de toutes les requêtes dans mon service. Remarque, que les Rails met une tonne de trucs dans les en-têtes, de sorte tout droit de dumping de la demande ou les en-têtes est probablement une mauvaise idée. À noter également que ma demande est principalement accessible via une API. Si le vôtre est d'abord une web-app, comme je devine que la plupart des gens, vous ne voulez probablement pas à inspecter la réponse.corps en tant qu'il contiendra votre code html.
Cela devrait fonctionner! 🙂 cheers.
Par le par.. Ce doit être placé dans votre contrôleurs de l'action. Ex: Si vous le placez dans votre créer action, il doit également enregistrer les user_agent je.e le navigateur, remote_ip je.e de la télécommande ip de l'utilisateur et de tous les paramètres.
vous devez regarder dans la classe de requête
comme le met demande.uri.
vérifiez ici pour plus de détails http://api.rubyonrails.org/classes/ActionController/AbstractRequest.html