Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Web » Fichero de registro demasiado grande Responder al tema
Nuevo tema


Página 1 de 1  [ 7 mensajes ] 
 
Nota 2009-03-31 04:41 @237

Perlero Nuevo
Registrado: 2008-10-29 10:25 @475
Mensajes: 36
Fichero de registro demasiado grande
Hola, estoy trabajando con un proceso que no se quiere parar, debe estar siempre funcionando y por lo tanto el fichero log puede crecer indefinidamente.

Me han hablado del log4j de Java, de la funcionalidad de rollingfileappender que por lo visto cuando el fichero llega a un tamaño X, cambia de fichero log, lo cual, parece acercarse a una solución para mi.

He estado leyendo las páginas de Log::Log4perl, en concreto la funcionalidad de Log::Log4perl::Appender::File, pero no veo cómo podría yo controlar el tamaño de fichero.

En realidad me gustaría que se cambiara de fichero cada día.

Seguiré leyendo al respecto, pero si alguien ha trabajado ya con ésto, me gustaría saber que:
1) estoy bien encaminada y efectivamente tengo que usar Log4perl para hacer lo que yo quiero hacer
2) cualquier info. que me sea de utilidad para avanzar.

¡Gracias!


Nota 2009-03-31 04:49 @242

Perlero Nuevo
Registrado: 2008-10-29 10:25 @475
Mensajes: 36
Sí, bueno.

Olvidé comentar que también he visto que con
use File::stat ... mtime, podría saber cuándo fue modificado la última vez el fichero y controlar entonces cuándo se cambia de día y tal... pero no sé si voy bien por aquí...


Nota 2009-03-31 05:03 @252
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10250
En prácticamente todas las distribuciones Linux modernas viene instalada la facilidad logrotate, pues es claro que un sistema Linux genera registros de actividad de muy diversos temas, y siempre hay que rotarles de forma diaria, para evitar que el disco duro se llene o que los ficheros de registro alcancen tamaños excesivos.

En el Log::Log4perl::FAQ, en la sección How can my file appender deal with disappearing log files? comenta el autor cómo tratar con esos casos en los que el fichero desaparece por la acción del programa que lo rota.

En la sección How can I rotate a logfile with newsyslog? se comenta de la utilidad newsyslog, aparte de unas consideraciones importantes a la hora de asegurarnos que el fichero queda correctamente partido.

Pero... hay una forma más cómoda... no usar Log::Log::Log4perl::Appender::File sino Log::Dispatch::FileRotate:

Código:
log4perl.logger.ABC     = DEBUG, ABC

log4perl.appender.ABC                          = Log::Dispatch::FileRotate
log4perl.appender.ABC.filename                 = /tmp/abc.log
log4perl.appender.ABC.max                      = 15
log4perl.appender.ABC.DatePattern              = yyyy-MM-dd
log4perl.appender.ABC.mode                     = append
log4perl.appender.ABC.TZ                       = BST
log4perl.appender.ABC.layout                   = Log::Log4perl::Layout::PatternLayout
log4perl.appender.ABC.layout.ConversionPattern = [%d] %c - %m%n


Otro ejemplo:
Código:
log4perl.appender.Logfile = Log::Dispatch::FileRotate
log4perl.appender.Logfile.filename = findus.log
log4perl.appender.Logfile.mode = append
log4perl.appender.Logfile.max = 2
log4perl.appender.Logfile.size = 10_000_000
log4perl.appender.Logfile.layout = Log::Log4perl::Layout::PatternLayout
log4perl.appender.Logfile.layout.ConversionPattern = %d %p: %M> %m%n

_________________
JF^D Perl programming


Nota 2009-04-02 03:57 @206

Perlero Nuevo
Registrado: 2008-10-29 10:25 @475
Mensajes: 36
Hola explorer,

Con el módulo Log::Dispatch::FileRotate no necesitaría instalarme el Log4j, ¿no? con lo cual creo que es más simple, ¿no?


Nota 2009-04-02 07:25 @350
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10250
Pues no lo sé, porque Log::Dispatch::FileRotate depende del sistema de registro Log::Dispatch.

Lo ideal sería usar logrotate; y siempre y cuando el programa que escribe el registro de actividad sepa que ha ocurrido un cambio en el fichero. En algunos programas vale con enviarles una señal USR1 para indicarles esa circunstancia.

De todas formas, Log4Perl es una solución de calidad profesional, y te lo digo yo que he estado en una empresa que lo usaba de forma muy seria.

_________________
JF^D Perl programming


Nota 2009-04-02 07:43 @363

Perlero Nuevo
Registrado: 2008-10-29 10:25 @475
Mensajes: 36
Bueno, supongamos que me instalo en plan pro el Log4Perl para logear la aplicación, pero para el tema de rolling file parece que el FileRotate es lo más conveniente con lo cual, me tendría que instalar ambos ¿no?

¿O con el Log4Perl ya lo tengo todo incluido?

No sé si me explico....


Nota 2009-04-02 08:17 @386
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10250
Sí, tienes que instalar los dos.

De todas maneras, mira un poco más en CPAN, que a lo mejor hay más módulos de rotación de registros. Busca por rotate.

_________________
JF^D Perl programming


Responder al tema  [ 7 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO