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