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::Channel::Handle - I/O handle logging channel for Log::Agent

Author

       Raphael Manfredi <Raphael_Manfredi@pobox.com>

Caveat

       Beware of chdir().  If your program uses chdir(), you should always specify logfiles  by  using  absolute
       paths,  otherwise  you  run  the risk of having your relative paths become invalid: there is no anchoring
       done at the time you specify them.  This is especially true  when  configured  for  rotation,  since  the
       logfiles  are  recreated  as  needed and you might end up with many logfiles scattered throughout all the
       directories you chdir()ed to.

Description

       The handle channel performs logging to an already opened I/O handle, along with the necessary prefixing
       and stamping of the messages.

       The creation routine make() takes the following arguments:

       "-handle" => handle
           Specifies  the  I/O  handle  to use.  It can be given as a GLOB reference, such as "\*FILE", or as an
           "IO::Handle" object.

           NOTE: Auto-flushing is not enabled on the handle.  Even when the channel is  closed,  the  handle  is
           left as-is: we simply stop sending log messages to it.

       "-no_newline" => flag
           When set to true, never append any "\n" (on Unix) or "\r\n" (on Windows) to log messages.

           Internally,  Log::Agent  relies on the channel to delimit logged lines appropriately, so this flag is
           not used.  However, it might be useful for "Log::Agent::Logger" users.

           Default is false, meaning newline markers are systematically appended.

       "-no_prefixing" => flag
           When set to true, disable the prefixing logic  entirely,  i.e.  the  following  options  are  ignored
           completely: "-prefix", "-showpid", "-no_ucfirst", "-stampfmt".

           Default is false.

       "-no_ucfirst" => flag
           When  set  to true, don't upper-case the first letter of the log message entry when there's no prefix
           inserted before the logged line.  When there is a prefix, a ":" character follows, and therefore  the
           leading letter of the message should not be upper-cased anyway.

           Default is false, meaning uppercasing is performed.

       "-prefix" => prefix
           The application prefix string to prepend to messages.

       "-showpid" => flag
           If  set  to true, the PID of the process will be appended within square brackets after the prefix, to
           all messages.

           Default is false.

       "-stampfmt" => (name | CODE)
           Specifies  the  time  stamp  format  to  use.  By  default,   my   "own"   format   is   used.    See
           Log::Agent::Stamping for a description of the available format names.

           You  may  also  specify  a CODE ref: that routine will be called every time we need to compute a time
           stamp. It should not expect any parameter, and should return a string.

Name

       Log::Agent::Channel::Handle - I/O handle logging channel for Log::Agent

See Also

Log::Agent::Logger(3), Log::Agent::Channel(3).

perl v5.36.0                                       2022-10-15                        Agent::Channel::Handle(3pm)

Synopsis

        require Log::Agent::Channel::Handle;

        my $driver = Log::Agent::Channel::Handle->make(
            -prefix     => "prefix",
            -stampfmt   => "own",
            -showpid    => 1,
            -handle     => \*FILE,
        );

See Also