Le 19 septembre 2008 12:32, Jérémy Dierx a écrit :
Merci JF pour ta réponse.
from scratch, avec une appli en rails 2.1.1, tout fonctionne parfaitement.
Par contre, avec une appli freezée en rails 2.0.2, cela ne fonctionne pas.
En affichant le log_level dans les logs, ce dernier semble bien initialisé à
“error” mais reste concrètement au niveau “info”.
Ce n’est pas ce que j’observe. Mais ça m’a intrigué et j’ai essayé de
reproduire l’erreur et effectivement j’ai l’erreur. Après investigation,
çase reproduit avec Rails 2.0.2 et Mongrel (mais via script/server et
non mongrel_rails start ; ça marche avec WEBrick et Thin par exemple).
Effectivement le bug est au niveau de lib/command/servers/mongrel.rb
J’ai trouvé la solution suivante (pour rails 2.0.2 donc) :
ajouter “ActiveRecord::Base.logger.level = Logger::ERROR” dans
environment.rb, juste après le block “Rails::Initializer.run”
Quelques remarques :
même si tous les frameworks (au sens rails du terme) ont par
défaut le même logger, autant modifier au niveau général, soit
RAILS_DEFAULT_LOGGER (accessible en Rails 2.1 via Rails.logger)
si tu n’as pas changé le logger par défaut, tu as une
instance d’ActiveSupport::BufferedLogger donc il vaudrait mieux
utiliser ActiveSupport::BufferedLogger::ERROR même si les
constantes sont les mêmes que Logger, mais c’est plus cohérent.
la meilleure solution, c’est de backporter le bugfix de script/server
sinon finalement ton config.log_level = :error ne servirait à rien.
– Jean-François.
PS. L’erreur ne se produit pas avec script/console, ç’aurait dû
être une indication intéressante…