Автор Тема: логирование Net::FTP  (Прочитано 2937 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн micolo

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
логирование Net::FTP
« : 28 Ноября 2006, 16:38:18 »
Доброго времени суток уважаемые знатоки! У меня такой вопрос. Необходимо при работе с фтп вести логирование в отдельный файл, на предмет ошибок, удачных загрузок и т.д. с учётом времени. Как лучше всего это сделать учитывая что в ключевых действия стоит это страшное слово die :D .

Вот стандартный пример:


$ftp 
Net::FTP->new("127.0.0.1",Timeout => 30Debug => 0) ||  die "Can\'t connect to ftp server.\\n";

$ftp->login(\'login,\'pass\') || die "error.\\n";

$ftp->binary();
$ftp->get($aa,\'../new/\'.$aa)  or die "get failed ", $ftp->message;

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
логирование Net::FTP
« Ответ #1 : 28 Ноября 2006, 18:17:26 »
open STDERR,">> $file" or die $!;

Оффлайн vladsu

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 271
  • +0/-0
  • 0
    • Просмотр профиля
    • http://vladislavsurguchev.eu/
логирование Net::FTP
« Ответ #2 : 28 Ноября 2006, 19:10:13 »
Я веду логи так:


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: $!";
}
« Последнее редактирование: 02 Декабря 2006, 01:17:16 от vladsu »
----------------------------------------------
Мой сайт чёрно-белых фотографий из разных уголков мира тут

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28