tokuhirom's Blog

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";

とかもいけるます。