Hatena::ブログ(Diary)

(ひ)メモ このページをアンテナに追加 RSSフィード

2011-06-10 (Fri)

一定時間ログを吐かないとイスが飛ぶ Log::Minimal::FlyingChair というモジュールを作りました

package Log::Minimal::FlyingChair;

use strict;
use warnings;
use utf8;
use open IO => ':encoding(utf-8)', ':std';
use Log::Minimal;
use Time::HiRes qw(sleep);

our $VERSION = '0.01_01';

our $Interval = 5;
our $Chair = "ε=コ_";

my $pid;

my $print_orig = $Log::Minimal::PRINT;
$Log::Minimal::PRINT = sub {
    $print_orig->(@_);

    kill "TERM", $pid if $pid;

    $pid = fork || do {
        $|++;
        while (1) {
            sleep $Interval;
            for (my $i=0; $i<70; $i++) {
                print "\r"." "x$i.$Chair;
                sleep 0.02;
            }
            print "\n";
        }
    };
};

END {
    kill "TERM", $pid if $pid;
}

1;

こんな感じで使います。

#!/usr/bin/env perl

use strict;
use warnings;

use Log::Minimal;
use Log::Minimal::FlyingChair;
$Log::Minimal::FlyingChair::Interval = 2;
#$Log::Minimal::FlyingChair::Chair = '(; Д ) ゜ ゜';

infof("hajimari〜〜〜〜");
sleep 12; # モタモタ
infof("owari〜〜〜〜");

exit;

f:id:hirose31:20110610205318p:image

Log::Minimalは0.08からカラーリングもできるようになったし本当によいモジュールですね^^

参考文献

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

トラックバック - http://d.hatena.ne.jp/hirose31/20110610/1307706929
2003 | 11 | 12 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 05 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 12 |
2012 | 01 | 02 | 03 | 06 | 08 | 10 | 11 | 12 |
2013 | 01 | 02 | 03 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2014 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 |
2015 | 01 | 02 | 07 | 10 |
2016 | 01 | 05 | 10 | 12 |
2017 | 07 |
2018 | 05 |