File::Stampedかいた
https://github.com/tokuhirom/File-Stamped
Log::Dispatch::File::Stamped みたいよしなにタイムスタンプがついてるファイル名でファイルをつくるの人です。
use File::Stamped; my $fh = File::Stamped->new(pattern => '/var/log/applog.%Y%m%d.txt'); $fh->print("OK\n"); # with Log::Minimal use Log::Minimal; my $fh = File::Stamped->new(pattern => '/var/log/applog.%Y%m%d.txt'); local $Log::Minimal::PRINT = sub { my ( $time, $type, $message, $trace) = @_; $fh->print("$time [$type] $message at $trace\n"); };
こんなかんじでひとつ。
Log::Minimal でこういうのしたくなったときにつかえるのかな、と。
ほんとは tie でつくりたかったんだけど、うまくうごかなくてあきらめた。print つかいたいから、 tie とかすればいい気もするんだけど。
【追記】
tie した。
use File::Stamped; my $fh = File::Stamped->new(pattern => '/var/log/applog.%Y%m%d.txt'); print {$fh} "OK\n";
とかもいけるます。