The Perl Advent Calendar needs more articles for 2022. Submit your idea today!

File::Stamped - time stamped log file


    use File::Stamped;
    my $fh = File::Stamped->new(pattern => '/var/log/myapp.log.%Y%m%d.txt');

    # with Log::Minimal
    use Log::Minimal;
    my $fh = File::Stamped->new(pattern => '/var/log/myapp.log.%Y%m%d.txt');
    local $Log::Minimal::PRINT = sub {
        my ( $time, $type, $message, $trace) = @_;
        print {$fh} "$time [$type] $message at $trace\n";


File::Stamped is utility for time stamped log file.


- my $fh = File::Stamped->new(%args);

    This method creates new instance of File::Stamped. The arguments are followings.

    - pattern : Str

        This is file name pattern. It is the pattern for filename. The format is POSIX::strftime(), see also [POSIX](

    - close\_after\_write : Bool

        Default value is 1.

    - iomode: Str

        This is IO mode for opening file.

        Default value is '>>:utf8'.  However, for perl-5.30 compatibility,
        '>>:raw' is used for syswrite.

    - autoflush: Bool

        This attribute changes $|.

    - rotationtime: Int

        The time between log file generates in seconds. Default value is 1.

- $fh->print($str: Str)

    This method prints the $str to the file.


Tokuhiro Matsuno <tokuhirom AAJKLFJEF GMAIL COM>




Copyright (C) Tokuhiro Matsuno

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