Я веду логи так:
my $error = 1;
my $logName = \'\';
my $logBuffer;
my $scpObj = Net::SCP->new( { \'host\'=>$hostname, \'user\'=>$username } );
$scpObj->scp( # copy file
, # to destination
) or( $logBuffer .= addIntoLog( "File can\'t be copied!\\n\\t"
. $scpObj->{errstr},1)
and $error = 0
);
if ($error == 1) {
$logBuffer .= addIntoLog( "File were copied successfully!");
}
#------------------------------
# timenow
#------------------------------
sub timenow {
my $errMsg = shift;
my $timeInSec = shift;
if ( defined $timeInSec ) {
unless ( $timeInSec =~ /^\\d+$/ ) {
$$errMsg .= "Fuction waiting time in seconds insterd $timeInSec";
}
}
my ($sec,$min,$hour,$day,$month,$year) = localtime( defined $timeInSec
? $timeInSec
: time
);
return $year+1900,$month+1,$day,$hour,$min,$sec;
}
#------------------------------
# Add into Log
#------------------------------
sub addIntoLog {
my ( $mess, $flag ) = @_;
unless ( defined $flag && $flag != 0 ) {
sprintf "[%04d-%02d-%02d %02d:%02d:%02d] $mess\\n", timenow(\\$error);
} elsif ( $flag == 2 ) {
sprintf "[%04d-%02d-%02d %02d:%02d:%02d] $mess\\n", timenow(\\$error);
} else {
sprintf "[%04d-%02d-%02d %02d:%02d:%02d] $mess\\n", timenow(\\$error);
}
}
#------------------------------
# Writing a Log File
#------------------------------
END {
$logFile ||= $logName . \'.log\';
open LOGFH, ">> $logFile" or die "The $logFile file can\'t be created: $!";
print LOGFH $logBuffer . "\\n" if defined $logBuffer;
close LOGFH or die "The $logFile file can\'t be closed: $!";
}