2015-10-09 1 views
3

Avec la gemme rack-timeout installée, comment est-il possible d'afficher les journaux ERROR uniquement? Par exemple, je voudrais éviter d'avoir le dessous dans mes journaux:rack-timeout: désactiver les informations/enregistrement actif

source=rack-timeout id=8a11a8ac3dadb59a4f347d8e365faddf timeout=20000ms service=0ms state=active source=rack-timeout id=8a11a8ac3dadb59a4f347d8e365faddf timeout=20000ms service=49ms state=completed source=rack-timeout id=ee947d4a291d02821ab108c4c127f555 timeout=20000ms state=ready

Ce qui suit ne fonctionne pas: Rack::Timeout.unregister_state_change_observer(:active)

Le ci-dessous peut être sur la bonne voie, mais je vais avoir des tests de difficulté :

Rack::Timeout::Logger.level = Logger::ERROR

Répondre

1

Lire ici pour plus d'informations

https://github.com/heroku/rack-timeout#rails-apps-manually

Vous pouvez également essayer ce code, bien que non testé.

Rack::Timeout::StageChangeLoggingObserver.logger = logger = ::Logger.new(STDERR) 
logger.level = ::Logger::DEBUG 
logger.formatter = ->(severity, timestamp, progname, msg) {"[#{timestamp}] #{msg} at=#{severity.downcase}\n" } 
1

(Notez que le nom de la classe a été changé Stage…-State… en v0.3.0)

Dans la production, je veux vous connecter à INFO niveau si je reçois un message de journal par demande, mais je ne suis pas voulez ce bruit de rack-timeout.

Vous pouvez modifier le hachage STATE_LOG_LEVEL dans le StateChangeLoggingObserver et modifier le niveau de journalisation utilisé pour les différents états. Je l'utilise dans mon initialiseur pour empêcher les ready et completed journaux de montrer:

Rack::Timeout::StateChangeLoggingObserver::STATE_LOG_LEVEL[:ready] = :debug 
Rack::Timeout::StateChangeLoggingObserver::STATE_LOG_LEVEL[:completed] = :debug 
1

Ma solution à ce problème était de donner rack-timeout son propre enregistreur.

Une fois que vous avez fait cela, vous pouvez modifier le niveau de journal:

# config/initializers/timeout.rb 
Rack::Timeout::Logger.logger = Logger.new("log/timeout.log") 
Rack::Timeout::Logger.logger.level = Logger::ERROR