Visualizzazione dei risultati da 1 a 2 su 2

Discussione: STDERR su file fisico

  1. #1

    STDERR su file fisico

    Salve a tutti!
    Ho scritto questa libreria:
    codice:
    package LogFile;
    use IO::Handle;
     use IO::File;
    require Tie::Handle;
       @ISA = qw(Exporter Tie::Handle);
    use strict;
    my $LogHand;
    sub Open {
    	untie *STDERR;
    	#close *STDERR;
    	#open ($LogHand, ">$_[0]") or return undef;
    	#if ($LogHand->fdopen(fileno(STDOUT),"w")) {
    	$LogHand = new IO::File(">".$_[0]) or return undef;
    	untie *STDERR;
    	tie *STDERR, __PACKAGE__;
    	return 1;
    }
    sub Save {
    
    	1;
    	
    }
    sub TIEHANDLE {
    	my ($package, $file)=@_;
    	#return undef unless defined $file;
    	#$LogHand = new IO::File(">".$file) or return undef;
    	#print "ciao FILE @_\n";
    	open (STDERR, ">$file") or return undef;
    	return 1;
    }
    sub PRINT {
    	print "ciao mondo!! @_\n";
    #	<stdin>;
    	print $LogHand localtime(),@_,"<--\n";
    	$LogHand->autoflush(1);
    	
    }
    sub PRINTF {
    	print "sprinter FF\n";
    }
    sub WRITE {
    	print "che palle\n";	
    }
    sub DESTROY {
    	close $LogHand;	
    }
    Però non riesco a farla funzionare.
    In pratica cosa dovrebbe fare:

    Dovrebbe redirigere tutto quello che viene mandato all'STDERR (tutti gli errori) su un file fisico sull'HD.
    Sì, tutto viene salvato divinamente, però....
    io vorrei, ad ogni riga di errore, inserirvi anche la data e l'ora, cioè, vorrei formattare in modo adeguato il file di LOG.
    Non ci riesco.

    Forse mi è venuta in mente una idea ora .....
    hihihihi....

    E se inserisco l'STDERR in una variabile scalare e ogni tanto controllo che essa non contenga qualche valore.
    Se c'è qualcosa, prendo le righe, inserisco la data corrente e salvo il tutto.
    E' brutto?
    ...

  2. #2
    in questo omento non posso fare prove di verifica quindi considera quello che dirò solo delle idee.

    prova ad impostare
    $| = 1;
    all'inizio della libreria.
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.