2013-05-06 3 views
2

Je suis un débutant Ruby/Rails, mais pas un débutant de développement.Comment activer la journalisation dans Rails?

J'ai le code suivant défini dans iniatializer.rb:

def logger 
    if defined?(RAILS_DEFAULT_LOGGER) 
    RAILS_DEFAULT_LOGGER 
    else 
    nil 
    end 
end 

Je veux activer la journalisation des messages dans mon application Ruby/Rails.

Et dans un code Ruby/Rails, je

logger.info "Email attachment: #{size} #{filename}" 

\ Ruby \ bin> rubis --version donne: rubis 1.8.7 (2010-01-10 patchlevel 249) [i386-mingw32 ]

Comment changer la définition de l'enregistreur pour que logger.info entre dans un fichier que je puisse ouvrir et lire? S'il vous plaît inclure nécessaire/inclure aussi.

Merci.

Répondre

3

si vos rails < 3.X puis utilisez le code ci-dessous

def logger 
    if defined?(RAILS_DEFAULT_LOGGER) 
    Logger.new('log/my_log.log') 
    else 
    nil 
    end 
end 

Si vos rails> 3.X puis remplacer RAILS_DEFAULT_LOGGER avec Rails.logger dans le code ci-dessus

def logger 
    if defined?(Rails.logger) 
    Logger.new('log/my_log.log') 
    else 
    nil 
    end 
end 
+0

La question est très spécifique. Comment pourrais-je changer la définition de l'enregistreur, pas écrire le nouveau code ... Merci. – chuacw

+1

Dans votre définition de l'enregistreur, il suffit de relier RAILS_DEFAULT_LOGGER avec "Logger.new ('log/my_log.log')" à l'intérieur de votre bloc if. Ne changez le condition.so votre code est 'si elle est définie? (RAILS_DEFAULT_LOGGER) Logger.new ('log/my_log.log') autre nul end' –

+0

Subbarao, Frederick dit RAILS_DEFAULT_LOGGER a été supprimé, il en sera de votre code Aidez-moi??? – chuacw

1

RAILS_DEFAULT_LOGGER a été retiré il y a longtemps. Le nouveau nom est Rails.logger. Ce sera créé pour vous lorsque les rails se charge.

+1

Et il n'y a rien que je peux faites avec votre réponse. Comment puis-je vérifier Rails.logger se connecte à un fichier journal alors? Si elle n'est pas activée, comment l'activer? Comment puis-je le définir? Me dire que c'est supprimé ou déconseillé ne me donne rien à travailler. Je dois activer la journalisation. S'il vous plaît fournir des informations utiles. – chuacw

+0

Mon point était que vous n'avez pas besoin de faire quoi que ce soit - il suffit d'utiliser Rails.logger (par défaut à log/development.log) –

+0

Frederick, donc dans le code ci-dessus, RAILS_DEFAULT_LOGGER a été supprimé, cela ou pas l'enregistreur moyen est défini comme nul? Donc, ça ne veut pas dire que j'ai encore besoin de faire quelque chose? – chuacw

Questions connexes