nessage

[meguro@mgr01-A pchan]$ perl test2.pl
1[meguro@mgr01-A pchan]$ l
total 24
-rw-rw-r-- 1 meguro meguro 354 Jan 11 06:41 env.pl
-rw-rw-r-- 1 meguro meguro 1927 Jan 11 14:06 lib_common.pl
-rw-rw-r-- 1 meguro meguro 186 Jan 11 14:07 test2.pl
drwxrwxr-x 2 meguro meguro 4096 Jan 11 14:07 ./
drwxrwxr-x 5 meguro meguro 4096 Jan 11 14:11 ../
-rw-rw-r-- 1 meguro meguro 338 Jan 29 06:54 log_kinrisystem.log
[meguro@mgr01-A pchan]$
[meguro@mgr01-A pchan]$ cat test2.pl
#!/usr/bin/perl

require lib_common.pl ;

print logf( DEBUG ssss test );
print logf( INFO ssss test );
print logf( WARNING ssss test );
print logf( ERROR ssss test );

[meguro@mgr01-A pchan]$
[meguro@mgr01-A pchan]$ cat lib_common.pl
#!/usr/bin/perl

use POSIX strftime ;

# エラーレベル
our $E_LEVEL_DEBUG = 1;
our $E_LEVEL_INFO = 2;
our $E_LEVEL_WARNING = 3;
our $E_LEVEL_ERROR = 4;

# ログファイル
$LOGFILE_NAME = log_kinrisystem.log ;

# ログファイルに表示する、エラーレベル(対象のレベル以上を表示)
$LOG_LEVEL = 2; # 1:DEBUG 2:INFO 3:WARNING 4:ERROR



sub logf {
my ($level $message) = @_;
my ($pkg $file $line) = caller;
my @time = localtime;
my $now = strftime %Y/%m/%d %H:%M:%S localtime;
my $logmsg = $now . [ . $level . ] . $message . at . $file . line . $line . ¥n ;

if( $level eq DEBUG ) {
if( $E_LEVEL_DEBUG >= $LOG_LEVEL ){
log_write($logmsg); # すべてのメッセージを出力
}
}
if( $level eq INFO ) {
if( $E_LEVEL_INFO >= $LOG_LEVEL ){
log_write($logmsg); # INFOレベル以上のメッセージを出力
}
}
if( $level eq WARNING ) {
if( $E_LEVEL_WARNING >= $LOG_LEVEL ){
log_write($logmsg); # WARNレベル以上のメッセージを出力
}
}
if( $level eq ERROR ) {
if( $E_LEVEL_ERROR >= $LOG_LEVEL ){
log_write($logmsg); # ERRORのメッセージを出力
}
}

}

sub log_write {
my ($logmsg) = @_;

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

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

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

}

[meguro@mgr01-A pchan]$
[meguro@mgr01-A pchan]$
[meguro@mgr01-A pchan]$
[meguro@mgr01-A pchan]$ cat env.pl
#!/usr/bin/perl

# エラーレベル
our $E_LEVEL_DEBUG = 1;
our $E_LEVEL_INFO = 2;
our $E_LEVEL_WARNING = 3;
our $E_LEVEL_ERROR = 4;

# ログファイル
$LOGFILE_NAME = log_kinrisystem.log ;

# ログファイルに表示する、エラーレベル(対象のレベル以上を表示)
$LOG_LEVEL = 2; # 1:DEBUG 2:INFO 3:WARNING 4:ERROR

[meguro@mgr01-A pchan]$
[meguro@mgr01-A pchan]$
[meguro@mgr01-A pchan]$ cat *log
2015/01/11 14:07:44 [INFO]ssss test at test2.pl line 6
2015/01/11 14:07:44 [WARNING]ssss test at test2.pl line 7
2015/01/11 14:07:44 [ERROR]ssss test at test2.pl line 8
2015/01/29 06:54:27 [INFO]ssss test at test2.pl line 6
2015/01/29 06:54:27 [WARNING]ssss test at test2.pl line 7
2015/01/29 06:54:27 [ERROR]ssss test at test2.pl line 8
[meguro@mgr01-A pchan]$
[meguro@mgr01-A pchan]$