ロギング用関数
log4perlのインストールが許されない環境でロギングをしたかったので、参考ページをもとに、試しに作ってみたロギング用関数。
出力先に関してのエラー処理なども組み込んでいないですし、どこまで実用になるかはわかりませんが、とりあえず私の環境では充分な感じ。
もっといい方法があれば教えてもらえると助かります。
環境
- OS :Windows2000 Professional SP4+Cygwin
- Perl:Perl 5.8.0
ソース
#-----------------------------------------# # ログ出力 関数 # # 第2引数に「1」を指定すると # # 標準出力にも出力(省略時は出力せず) # #-----------------------------------------# sub logger { ($msg, $STDOUT_FLG) = @_; $msg = "[" . getTime() . "] " . $msg . "\r\n"; open(LOG, "+>>/tmp/log.log"); flock(LOG, 2); @log = <LOG>; seek(LOG, 0, 0); print LOG $msg; truncate(LOG, tell()); flock(LOG, 8); close(LOG); if( $STDOUT_FLG == 1 ) { print $msg; } }
使用例
logger("ファイル出力のみ"); logger("標準出力・ファイル出力の両方" ,1);