Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Arquivo de Log

by Mago (Parson)
on Jul 08, 2003 at 18:48 UTC ( [id://272384]=sourcecode: print w/replies, xml ) Need Help??
Category: Utility Scripts
Author/Contact Info Mago
marco.lima@guapimirim.pm.org
Description: Para os membros ou futuros membros da lingua portuguesa.
Esta funcções servem para que seja possível montar um arquivo de Log ou Trace de forma fácil.
Algumas alterações podem ser necessárias, para que seja atendido a necessidade do programa.
Você deve sempre abrir o arquivo de log.
Com o arquivo de log aberto vc poderá utilizar o envio de mesnsagem e código de erro para o controle do arquivo.
Sempre antes de finalizar o programa, você deve passar um código de retorno para que o arquivo seja fechado corretamente. Ps. Lembre-se que este código é uma referencia para facilitar o desenvolvimento do programa.

#!/usr/bin/perl

sub AbreArqLog {
    my @auxSp = split('/', $0);
    my $proc_nam = $auxSp[(scalar(@auxSp) - 1)];
    my $proc_num = $$;
    my $sistema = $^O;
    my $aux;
    my ($proc_ini) = &TimeStamp(7);
    my $LOGFILEDIR = $ENV{HOME};
    my $pLog = substr($proc_nam, 0, (length($proc_nam) - 3));
    my $proc_log = $pLog . '_p' . $proc_num . '_d' .  &TimeStamp(8) .'
+.log';
    my ($time) = &TimeStamp(1);
    $LOGFILENAME =  $LOGFILEDIR . '/' .  $proc_log;
    #printf("\n $LOGFILENAME \n");
    open (LOG, ">> $LOGFILENAME");
    print LOG "$time\- ===============================================
+=======================\n";
    print LOG "$time\-  Nome do Processo           : $proc_nam \n";
    print LOG "$time\-  Numero do Processo         : $proc_num \n";
    print LOG "$time\-  Sistema Operacional        : $sistema \n";  
    print LOG "$time\-  Data de Inicio do Processo : $proc_ini \n";
    print LOG "$time\-  Nome do Arquivo de Log     : $proc_log \n";
    print LOG "$time\- ===============================================
+=======================\n";
    if (scalar(@ARGV) > 0) {
       print LOG "$time\- --------------------------------------------
+--------------------------\n";
       for ($aux = 0; $aux < scalar(@ARGV); $aux++) {
    print LOG "$time\-  Parametro                  : [" . ($aux + 1) .
+ "] - $ARGV[$aux] \n";
       }
       print LOG "$time\- --------------------------------------------
+--------------------------\n";
       print LOG "$time\- ============================================
+==========================\n";
    }
    close LOG;
    if (scalar(@ARGV) == 2) {
        if (($ARGV[1] eq "TRACE") || ($ARGV[1] eq "trace")) {
           print "\n\n>> $time <<\n\n";
           print " ===================================================
+===================\n";
           print "  Nome do Processo           : $proc_nam \n";
           print "  Numero do Processo         : $proc_num \n";
           print "  Sistema Operacional        : $sistema \n";  
           print "  Data de Inicio do Processo : $proc_ini \n";
           print "  Nome do Arquivo de Log     : $proc_log \n";
           print " ===================================================
+===================\n";
           if (scalar(@ARGV) > 0) {
              print " ------------------------------------------------
+----------------------\n";
              for ($aux = 0; $aux < scalar(@ARGV); $aux++) {
                  print "  Parametro                  : [" . ($aux + 1
+) . "] - $ARGV[$aux] \n";
              }
              print " ------------------------------------------------
+----------------------\n";
              print " ================================================
+======================\n";
           }
        }
    }
    return;
}


sub RunLog {
    my($text) = $_[0];
    my($time) = &TimeStamp(1);
    if (scalar(@ARGV) == 2) {
        if (($ARGV[1] eq "TRACE") || ($ARGV[1] eq "trace")) {
           print "$text\n";
        }
    }
    open (LOG, ">>$LOGFILENAME");
    print LOG "$time\-$text\n";
    close LOG;
    return;
}


sub RetCode {
    my $code = $_[0];
    my ($date_fim) = &TimeStamp(7);
    if (substr($code,0,1) eq "E") {
       &RunLog(" =====================================================
+===========================");
       &RunLog("  Status de Saida             : Finalizado com Erro !!
+!");
       &RunLog("  Codigo de Erro              : $code");
       &RunLog("  Data de Termino do Processo : $date_fim");
       &RunLog(" =====================================================
+===========================");
       &EnviaEmail("ERROR: [$code]", " Nome do Processo: [$0]\n Numero
+ do Processo: [$$]\n Termino do Processo: [$date_fim]\n Finalizado co
+m Erro !!!\n", $0);
       &AvisaAdm("ERROR: [$code]", " Nome do Processo: [$0]\n Numero d
+o Processo: [$$]\n Termino do Processo: [$date_fim]\n Finalizado com 
+Erro !!!\n", $0);
    } elsif (substr($code,0,1) eq "W") {
            &RunLog(" ================================================
+================================");
            &RunLog("  Status de Saida             : Finalizado com Pr
+oblemas !!!");
            &RunLog("  Data de Termino do Processo : $date_fim");
            &RunLog(" ================================================
+================================");
            &EnviaEmail("WARN: [$code]", " Nome do Processo: [$0]\n Nu
+mero do Processo: [$$]\n Termino do Processo: [$date_fim]\n Finalizad
+o com Problemas !!!\n", $0);
    } elsif (substr($code,0,1) eq "F") {
            &RunLog(" ================================================
+================================");
            &RunLog("  Status de Saida             : Finalizado com Fa
+lhas !!!");
            &RunLog("  Codigo da Falha             : $code");
            &RunLog("  Data de Termino do Processo : $date_fim");
            &RunLog(" ================================================
+================================");
            &EnviaEmail("FAIL: [$code]", " Nome do Processo: [$0]\n Nu
+mero do Processo: [$$]\n Termino do Processo: [$date_fim]\n Finalizad
+o com Falha !!!\n", $0);
            &AvisaAdm("FAIL: [$code]", " Nome do Processo: [$0]\n Nume
+ro do Processo: [$$]\n Termino do Processo: [$date_fim]\n Finalizado 
+com Falha !!!\n", $0);
    } else {
           &RunLog(" =================================================
+================================");
           &RunLog("  Status de Saida             : Processo Finalizad
+o com Sucesso !!!");
           &RunLog("  Data de Termino do Processo : $date_fim");
           &RunLog(" =================================================
+================================");
           &EnviaEmail("OK: [$code]", " Nome do Processo: [$0]\n Numer
+o do Processo: [$$]\n Termino do Processo: [$date_fim]\n Finalizado c
+om Sucesso !!!\n", $0);
    }
    print $code;
    exit $code;
}

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: sourcecode [id://272384]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others avoiding work at the Monastery: (10)
As of 2024-04-18 09:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found