En Windows, rotar los logs de una aplicación Rails que corre bajo mongrel y mongrel_service no es trivial. Mongrel bloquea el archivo por lo que una rotación por código, asignando a RAILS_DEFAULT_LOGGER una rotación por espacio o por tiempo desemboca en un error de sistema.
La mejor opción que he encontrado ha sido la fuerza bruta, el viejo método PRR: Parar, Rotar, Rearrancar. Para parar los servicios
En consola de sistema o un archivo batch, para parar un servicio
sc stop my_service_name
Si no se puede parar por cualquier razón, se pinta un código de error por pantalla, pero no lo devuelve en ninguna variable de entorno. Pero se puede comprobar de la siguiente manera:
sc query my_service_name | find "STOPPED"
if errorlevel 1 goto :non_stopped_service
y hacer lo sea necesario en la etiqueta :non_stopped_service
Para renombrar por batch el archivo de log y añadirle, por ejemplo, la fecha
set datestr=%DATE%
set timestr=%TIME%
set timestampstr=%datestr:~6,4%%datestr:~3,2%%datestr:~0,2%%timestr:~0,2%%timestr:~3,2%
ren e:\rails_apps\my_app\log\development.log development_%timestampstr%.log
Finalmente, para arrancar un servicio
sc start my_service_name
Para comprobar el estado en que quedan los servicios, sólo hay que jugar con el comando sc.
Salud y roncanrol¡
Suscribirse a:
Enviar comentarios (Atom)
2 comentarios:
¡Que tela que he llegado aqui de coña completamente!
Soy Paco Brevers de Vector ^^
Ya me han comentado que te va todo fenomenal asi que me alegro.
Gracias por la historia de la rotacion de logs, que lo sabia hacer en *NIX pero en windows ni guarra.
Nos vemos ^^
Que pacha Paco!
Me alegro de saber de ti. Escríbeme a dani@danimata.com
Publicar un comentario