#!/usr/bin/perl
# rotates sql.log, debug.log, sql.txt, trace.log
# skips empty files using io($file)->size
# run from cron once per day eg 00:00
use strict;
use warnings;
use lib '/home/raj/perl5/lib/perl5';
use IO::All;
use Logfile::Rotate;
my $PATH_TO_LOGS = '/home/raj/www/apps/HMDS/trunk/logs';
my $archive = "$PATH_TO_LOGS/old";
#----------------------------------------------------------------------
my $sql_log = "$PATH_TO_LOGS/sql.log";
if ( io($sql_log)->size ) {
Logfile::Rotate->new(
File => $sql_log, # base filename
Dir => $archive, # move old files to here
Count => 365, # how many to keep before overwriting
Gzip => 'lib', # use Compress::Zlib for compression (recommended)
Flock => 'yes', # flock if supported
Persist => 'yes', # copy current logfile chown settings to any new log files
)->rotate;
}
#----------------------------------------------------------------------
my $debug_file = "$PATH_TO_LOGS/debug.log"; #
if ( io($debug_file)->size ) {
Logfile::Rotate->new(
File => $debug_file, # base filename
Count => 3, # how many to keep before overwriting
Flock => 'yes', # flock if supported
Persist => 'yes', # copy current logfile chown settings to any new log files
)->rotate;
}
#----------------------------------------------------------------------
my $sql_file = "$PATH_TO_LOGS/sql.txt";
if ( io($sql_file)->size ) {
Logfile::Rotate->new(
File => $sql_file, # base filename
Count => 1, # how many to keep before overwriting
Flock => 'yes', # flock if supported
Persist => 'yes', # copy current logfile chown settings to any new log files
)->rotate;
}
#----------------------------------------------------------------------
my $dbi_trace = "$PATH_TO_LOGS/trace.log";
if ( io($dbi_trace)->size ) {
Logfile::Rotate->new(
File => $dbi_trace, # base filename
Dir => $archive, # move old files to here
Count => 365, # how many to keep before overwriting
Flock => 'yes', # flock if supported
Persist => 'yes', # copy current logfile chown settings to any new log files
)->rotate;
}