Mise à JOUR: après la mise en œuvre dans notre application, j'ai appris que comme des Rails 3.1 Logger
classe est dépréciée en faveur de l' BufferedLogger
classe, qui ne prend pas en charge l'API indiqué ci-dessous. La bonne réponse ne semble pas être l'UNIX logrotate.
La réponse suivante est spécifique à Rails 3, et n'est pas recommandé pour les Rails 3.1 et au-dessus.
Réponse originale à cette question, malheureusement ce n'est pas pertinente...
En utilisant UNIX logrotate est généralement pas nécessaire, et a le désavantage d'avoir d'autres de la configuration du système à l'extérieur de l'environnement Rails, ce qui crée une dépendance, une autre chose à ne pas en contrôle de code source, le manque de visibilité et de flexibilité, etc. - vous savez, toutes ces choses que Rails est bon :-)
Rails 3 (et peut-être plus tôt) a adapté, intégré dans la rotation des journaux et de la suppression de l'option. La documentation est horrible, mais c'est en fait simple à utiliser.
Les paramètres sont généralement en config/environments/production.rb
(et development.rb
, test.rb
, autres) sur la ligne de départ config.logger
. Pour utiliser la valeur par défaut Rails enregistreur utiliser une ligne comme ceci
config.logger = Logger.new(config.paths.log.first, 10, 100.megabytes)
Cette new
méthode prend deux point de prêter à différents ensembles d'arguments. Le premier argument est toujours le chemin d'accès au fichier journal.
Celui généré avec une nouvelle application Rails utilise deux arguments, le second étant une période de temps la chaîne 'daily'
ou 'weekly'
. Mais cela laisse tout les journaux qui traînent. Pour construire. Puis prendre vers le bas de votre site lorsque le serveur est à court d'espace disque. Pas que que cela n'arrivera jamais à moi...
Les trois-arg variante présentée ici est différent. Dans ce cas, le deuxième argument est un nombre: le nombre de journaux à retenir lors de la rotation, dans ce cas de 10 fichiers. Le troisième argument est le nombre d'octets à mettre dans les journaux avant la rotation, dans ce cas, 100.méga-octets, ce qui signifie que je vais avoir au plus 1 go de fichiers de log.
Et si vous voulez que vos journaux en /var/log
avec tous les autres, vous pouvez simplement spécifier que le chemin d'accès dans le premier arg. Avoir votre gâteau, il mange trop.