Je travaille sur un projet Rails 4 et je n'arrive pas à faire apparaître quoi que ce soit dans mon journal de développement lorsque j'appelle Rails.logger.debug "test"
. J'ai essayé d'effectuer une recherche en ligne, mais je sens que je n'ai pas beaucoup progressé. Comment pourrais-je configurer un enregistreur et lui dire d'écrire dans mon fichier journal de développement?
Toute aide serait grandement appréciée.
Je pense que vous devriez l'utiliser comme ceci dans votre méthode. Commander section 2.3 ici
def your_method
logger.debug "This is from debug"
logger.info "This is from info"
end
Rails a un mécanisme de journalisation facile
depuis le contrôleur/modèle
logger.info 'some info'
logger.error 'some error'
etc.
Depuis les sections Hors de ces rails, dans les objets Plain Old Ruby tels que les objets de service, les objets de bibliothèque, vous pouvez facilement accéder au même enregistreur par défaut
pour rails <3
logger = Rails_DEFAULT_LOGGER
logger.info 'some info'
logger.error 'some error'
pour rails> 3
logger = Rails.logger
logger.info 'some info'
logger.error 'some error'
Si vous souhaitez utiliser Rails.logger
dans un objet Plain Old Ruby ou ServiceObject
, vous devez l'inclure manuellement:
class MyService
def initialize(foo)
@logger = Logger.new(STDOUT)
@foo = foo
end
def call
do_something
end
private
def do_something
@logger.debug { "do_something called! With #{@foo.class} class" }
end
end
Résultat:
MyService.new(Bar.new).call
# [2018-01-27T00:17:22.167974 #57866] DEBUG -- : do_something called! With Bar class
Si aucun journal ne s'affiche dans votre fichier journal, vérifiez à quelle valeur log_level a été défini dans votre fichier d'environnements (config/environnements/development.rb, ...). ) ou
config.log_level = :debug
devrait être réglé. Les autres valeurs sont:
:debug, :info, :warn, :error, :fatal, :unknown
Plus d'informations ici: https://guides.rubyonrails.org/debugging_Rails_applications.html } _ Section 2.2 Niveaux de journalisation