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


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 library for logging. File::Stamped object mimic file handle.

You can use "myapp.log.%Y%m%d.log" style log file.


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

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

You need to specify one of pattern or callback.

pattern : Str

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

callback : CodeRef

You can use a CodeRef to generate file name.

File::Stamped pass only one arguments to callback function.

Here is a example code:

    my $pattern = '/path/to/myapp.log.%Y%m%d.log';
    my $f = File::Stamped->new(callback => sub {
        my $file_stamped = shift;
        local $_ = $pattern;
        $_ = POSIX::strftime($_, localtime());
        return $_;
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.

auto_make_dir: Bool

If this attribute is true, auto make directry of log file. Default value is false.

symlink: Str

generate symlink file for log file.

$fh->print($str: Str)

This method prints the $str to the file.

$fh->syswrite($str: Str [, $len: Int, $offset: Int])

This method prints the $str to the file. This method uses syswrite internally. Writing is not buffered.


Tokuhiro Matsuno <tokuhirom AAJKLFJEF@>




Copyright (C) Tokuhiro Matsuno

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