« Perl - ライブラリファイル | トップページ | Perl - base64形式(エンコード/デコード)のサンプル »

2012/05/22

Perl - ログファイル出力のサンプル

プログラムを実行していて実行結果やエラーをファイルに出力し残したい場合、次のプログラムが参考になる。
ログに結果を残す場合、いつのログか判るように日時情報が必要になる。ここでは、先ほど作成したライブラリファイルを利用している。
ログファイル名には、年月日を設定することで日単位にログを残すことができる。

#------------------------------------------------
# Logファイル出力のサンプル
#------------------------------------------------

use strict;              # 不適切な構文の使用を制限するプラグマ
use warnings;            # 不適切な構文を警告するプラグマ

require("lib_file.pl");  # ライブラリファイル取り込み

#------------------------
# サブルーチン宣言
#------------------------
sub logout(@);

# ログ出力テスト
logout("log", "ログファイル出力開始!!");

#------------------------------------------------
# ログのファイル出力
#   引数1:ログファイル名
#   引数2:出力するログメッセージ
#------------------------------------------------
sub logout(@)
{
    my $lognam;
    my $logmsg;
    my $logfile;
    my $fh_log;
    my $ymd;
    my $hms;

    ($lognam, $logmsg) = @_;        # 引数取得

    # ログファイル名が省略時は"perl_log"を設定
    if ( length($lognam) == 0 )
    {
        $lognam = "perl_log";
    }

    $ymd = get_date("LFM");         # 日付取得
    $hms = get_time("LFM");         # 時間取得

    #---------------------------------
    # ログファイル名作成
    #   ログファイル名 + 日付.log
    #---------------------------------
    $logfile = sprintf("%s%s.log", $lognam, $ymd);

    #---------------------------------
    # ログファイル追加モードでオープン
    #---------------------------------
    open($fh_log, '>>', $logfile)
        or die(qq/Can't open file "$logfile": $!/);

    #---------------------------------
    # ログ書き込み
    #   日付 時間 : ログメッセージ(改行)
    #---------------------------------
    printf($fh_log "%s %s : %s\n", $ymd, $hms, $logmsg);

    #---------------------------------
    # ログファイルクローズ
    #---------------------------------
    close($fh_log)
        or die(qq/Can't close file "$logfile": $!/);
}

#------------------------------------------------
# END
#------------------------------------------------

« Perl - ライブラリファイル | トップページ | Perl - base64形式(エンコード/デコード)のサンプル »

Perl実用プログラムサンプル」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: Perl - ログファイル出力のサンプル:

« Perl - ライブラリファイル | トップページ | Perl - base64形式(エンコード/デコード)のサンプル »