The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Log::Agent::File::Rotate - a rotating logfile set

SYNOPSIS

#
# This class is not user-visible.
#
# It is documented only for programmers wishing to inherit
# from it to further extend its behaviour.
#

require Log::Agent::Driver::File;
require Log::Agent::Rotate;
require Log::Agent::File::Rotate;

my $config = Log::Agent::Rotate->make(...);
my $driver = Log::Agent::Driver::File->make(...);
my $fh = Log::Agent::File::Rotate->make("file", $config, $driver);

DESCRIPTION

This class represents a rotating logfile and is used drivers wishing to rotate their logfiles periodically. From the outside, it exports a single print routine, just like Log::Agent::File::Native.

Internally, it uses the parameters given by a Log::Agent::Rotate object to transparently close the current logfile and cycle the older logs.

Its exported interface is:

make file, config, driver

This is the creation routine. The driver that owns the file is passed, so that we can properly prefix emergency log messages that could not go to the logfile file, for instance if we cannot create it. The config object is an instance of Log::Agent::Rotate.

Prints args to the file. After having printed the data, monitor the file against the thresholds defined in the configuration, and possibly rotate the logfiles according to the parameters held in the same configuration object.

When the is_alone flag is not set in the configuration, the logfile is checked everytime a print is issued to see if its inode changed. Indeed, when several instances of the same program using rotating logfiles are running, each of them may decide to cycle the logs at some point in time, and therefore our opened handle could point to an already renamed or unlinked file.

AUTHOR

Raphael Manfredi <Raphael_Manfredi@pobox.com>

SEE ALSO

Log::Agent::Rotate(3), Log::Agent::Driver::File(3).