NAME

Log::Dispatch::File::Stamped - Logging to date/time stamped files

VERSION

version 0.21

SYNOPSIS

use Log::Dispatch::File::Stamped;

my $file = Log::Dispatch::File::Stamped->new(
  name      => 'file1',
  min_level => 'info',
  filename  => 'Somefile.log',
  stamp_fmt => '%Y%m%d',
  stamp_sep => ':',
  time_function => 'localtime',
  mode      => 'append',
);

$file->log( level => 'emerg', message => "I've fallen and I can't get up\n" );

DESCRIPTION

This module subclasses Log::Dispatch::File for logging to date/time-stamped files, respecting all its configuration options. As with other Log::Dispatch handlers, the destination file is kept open for as long as the filename remains constant (unless close_after_write is set).

METHODS

new(%p)

This method takes the same set of parameters as Log::Dispatch::File::new(), with the following differences:

  • filename ($)

    The filename template. The actual timestamp will be appended to this filename when creating the actual logfile. If the filename has an extension, the timestamp is inserted before the extension. See examples below.

  • stamp_fmt ($)

    The format of the timestamp string. This module uses POSIX::strftime to create the timestamp string from the current local date and time. Refer to your platform's strftime documentation for the list of allowed tokens.

    Defaults to %Y%m%d.

  • stamp_sep ($)

    The separator character(s) used between components in the log filename.

    Defaults to -.

  • time_function ($)

    The function used to determine the current time; present choices are "localtime" in perlfunc or "gmtime" in perlfunc. Defaults to localtime.

log_message( message => $ )

Sends a message to the appropriate output. Generally this shouldn't be called directly but should be called through the log() method (in Log::Dispatch::Output).

EXAMPLES

Assuming the current date and time is:

% perl -e 'print scalar localtime'
Sat Feb  8 13:56:13 2003

Log::Dispatch::File::Stamped->new(
  name      => 'file',
  min_level => 'debug',
  filename  => 'logfile.txt',
);

This will log to file logfile-20030208.txt.

Log::Dispatch::File::Stamped->new(
  name      => 'file',
  min_level => 'debug',
  filename  => 'logfile.txt',
  stamp_fmt => '%d%H',
);

This will log to file logfile-0813.txt.

SEE ALSO

ACKNOWLEDGEMENTS

Dave Rolsky, author of the Log::Dispatch suite and many other fine modules on CPAN.

This module was rewritten to respect all present (and future) options to Log::Dispatch::File by Karen Etheridge, <ether@cpan.org>.

SUPPORT

Bugs may be submitted through the RT bug tracker (or bug-Log-Dispatch-File-Stamped@rt.cpan.org).

AUTHORS

  • Eric Cholet <cholet@logilune.com>

  • Karen Etheridge <ether@cpan.org>

CONTRIBUTOR

Sven Willenbuecher <sven.willenbuecher@kuehne-nagel.com>

COPYRIGHT AND LICENCE

This software is copyright (c) 2003 by Eric Cholet and Karen Etheridge.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.