Si hay algo que detesto de mi máquina de desarrollo es encontrarme con que los logs de las aplicaciones Rails han crecido hasta ocupar cientos de megas. La configuración por defecto de Rails asume que todo el log irá a un fichero y que es el usuario el que configura como quiere que se gestionen la rotación en producción (en Trabe solemos usar logrotate).
Hay varias opciones para mantener a raya los logs en desarrollo. La primera es configurar en
config/environments/development.rb
el Logger
de Rails para que rote los ficheros:
1
|
|
Con estos parametros nuestro fichero de log rotaría al alcanzar 2 megas y no almacenaríamos ficheros antiguos (así es como me gusta a mi, pero en la documentación de la clase Logger podéis ver que hay más opciones de rotación.
Otra posibilidad es utilizar un servicio de loggin del operativo, por ejemplo usar syslog
y configurarlo como prefiramos.
1
|
|
Esta opción es más flexible ya que nos permite tener fuera de la aplicación la configuración (así cada desarrollador puede ponerla a su gusto). De todos modos, al igual que en el primer caso, esto nos obliga a acordarnos de configurar el logger cada vez que creamos una nueva aplicación y eso es “demasiado esfuerzo”. Mi solución favorita es no tocar nada en las aplicaciones Rails y utilizar un servicio de rotación de logs como se hace en producción: lograte en Linux y newsyslog en Mac OSX, configurado de tal modo que se roten todos los logs de las aplicaciones que estoy desarrollando.
Con lograte, añadimos un fichero en la carpeta /etc/logrotate.d/
tal que así:
1 2 3 4 5 6 7 |
|
y si usamos newsyslog lo añadimos a la carpeta /etc/newsyslog.d/
:
1 2 |
|
Easy peasy lemon squeezy ;)