Les logs des applications RubyOnRails (logger level, keep_releases capistrano) en production

Quand votre déploiement via Capistrano échoue à cause du disque dur du serveur de production qui est plein à cracker le moment arrive pour vous de trouver un moyen d'économiser de la place !

Ah ! Vous avez oublié de penser à ça ! Bon ben vérifiez !

df -h

Ensuite on va selectionner ce qu'il faut pour les logs en production : Dans environments/production.rb sur la ligne du logger (config.logger = Logger.new("#{RAILS_ROOT}/log/#{RAI......):

Ci-dessous : 20.megabyte et la taille de chaques fichiers log, quand le fichier atteint 20 Mo, il est renommé production.log.0 puis
production.log.1
production.log.2
etc...

50 et le nombre de fichier log à conserver les plus anciens sont supprimés.

config.logger = Logger.new("#{RAILS_ROOT}/log/#{RAILS_ENV}.log", 50, 20.megabyte)

Autre chose, soyons selectif, on production seul les messages d'erreurs nous sont utiles, modifiez le niveau du logger :

#Niveaux: :debug, :info, :warn, :error, :fatal
config.logger.level = Logger::ERROR

Tout cela est aussi valable pour le mode "development" (environments/development.rb)

Bon enfin pour capistrano : deploy.rb :

set :keep_releases, 4

La commande permet lors d'un 'cap deploy:cleanup' de ne conserver que 4 releases. (Supprime les anciennes releases ainsi que les logs associés à chaque release)