Usar la biblioteca de registradores en Ruby es una manera fácil de realizar un seguimiento de cuándo algo salió mal con su código. Cuando algo sale mal, tener una cuenta detallada de exactamente lo que sucedió antes del error puede ahorrarle horas en la localización del error. A medida que sus programas se hacen más grandes y complejos, es posible que desee agregar una forma de escribir mensajes de registro. Ruby viene con una serie de clases y bibliotecas útiles llamadas biblioteca estándar. Entre estos se encuentra la biblioteca de registradores, que proporciona registros priorizados y rotados.
Dado que la biblioteca del registrador viene con Ruby, no hay necesidad de instalar gemas u otras bibliotecas. Para comenzar a usar la biblioteca de registradores, simplemente requiera 'registrador' y cree un nuevo objeto de registrador. Cualquier mensaje escrito en el objeto Logger se escribirá en el archivo de registro.
#! / usr / bin / env ruby
requiere 'registrador'
log = Logger.new ('log.txt')
log.debug "Archivo de registro creado"
Cada mensaje de registro tiene una prioridad. Estas prioridades facilitan la búsqueda de mensajes serios en los archivos de registro, además de hacer que el objeto registrador filtre automáticamente los mensajes menores cuando no son necesarios. Puede pensar en ella como en su lista de tareas pendientes para el día. Algunas cosas deben hacerse absolutamente, algunas cosas realmente deben hacerse, y algunas cosas pueden posponerse hasta que tenga tiempo de hacerlas..
En el ejemplo anterior, la prioridad era depurar, la menos importante de todas las prioridades (el "aplazar hasta que tenga tiempo" de su lista de tareas pendientes, si lo desea). Las prioridades de los mensajes de registro, en orden de menor a mayor importancia, son las siguientes: depuración, información, advertencia, error y fatal. Para establecer el nivel de mensajes que el registrador debe ignorar, use el nivel atributo.
#! / usr / bin / env ruby
requiere 'registrador'
log = Logger.new ('log.txt')
log.level = Logger :: WARN
log.debug "Esto será ignorado"
log.error "Esto no será ignorado"
Puede crear tantos mensajes de registro como desee y puede registrar cada pequeña cosa que hace su programa, lo que hace que las prioridades sean extremadamente útiles. Cuando está ejecutando su programa, puede dejar el nivel del registrador en algo como advertir o error para captar las cosas importantes. Luego, cuando algo sale mal, puede bajar el nivel del registrador (ya sea en el código fuente o con un interruptor de línea de comandos) para obtener más información.
La biblioteca de registradores también admite la rotación de registros. La rotación de registros evita que los registros crezcan demasiado y ayuda a buscar en registros más antiguos. Cuando la rotación de registros está habilitada y el registro alcanza un cierto tamaño o una cierta edad, la biblioteca del registrador cambiará el nombre de ese archivo y creará un nuevo archivo de registro. Los archivos de registro anteriores también se pueden configurar para que se eliminen (o "se caigan de la rotación") después de cierta edad.
Para habilitar la rotación de registros, pase 'mensual', 'semanal' o 'diario' al constructor de Logger. Opcionalmente, puede pasar un tamaño máximo de archivo y un número de archivos para mantener en rotación al constructor.
#! / usr / bin / env ruby
requiere 'registrador'
log = Logger.new ('log.txt', 'diario')
log.debug "Una vez que el registro se convierte en al menos uno"
log.debug "hace un día, se le cambiará el nombre y un"
log.debug "se creará un nuevo archivo log.txt".