必要になったので調べていたのですが、himazu blogさんの、STDOUTとSTDERRをファイルにも出力するようにする では、解決していないようなので自分で考えてみました。
これにより、本文中のprint文には一切触れずに、STDOUT(標準出力)とSTDERR(標準エラー出力)をこっそりロギングする仕組みを追加でき、STDERRに出るwarningも捕捉できるので、とても便利だと思います。
この機能の実現に必要な、ファイルハンドルを多重化するしくみは、CPANモジュールで、IO::TeeとFile::Teeが見つかったのですが、どうやら、File::Teeが簡単に使えそうです。
ひとつ残念なところは、File::TeeはWindowsに対応していない点です。
せっかく前処理部分を書けるので、無駄にタイムスタンプ機能などを追加してみました。
記録例(output.log)
0 コメント:
コメントを投稿