logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

Authors

       Originally written by Raphael Manfredi <Raphael_Manfredi@pobox.com>, currently maintained by Mark Rogaski
       <mrogaski@pobox.com>.

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.

       Before rotating the current logfile, the string:

           *** LOGFILE ROTATED ON <local date>

       is emitted, so that people monitoring the file via "tail -f" know about it and are not surprised by the
       sudden stop of messages.

       Its exported interface is:

       make file, config
           This is the creation routine.  The config object is an instance of "Log::Agent::Rotate".

       print args
           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.

Name

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

See Also

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

perl v5.32.1                                       2021-09-27                      Log::Agent::File::Rotate(3pm)

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);

See Also