Comment puis-je suivre un fichier journal et insérer horodatages, en utilisant Perl?

StackOverflow https://stackoverflow.com/questions/3976506

  •  09-10-2019
  •  | 
  •  

Question

I ai une application qui génère des journaux en mode ajout, mais les billes ne sont pas horodaté.

Est-il possible d'utiliser tail -f avec une option ou un script perl pour surveiller les écritures à ce fichier et les préfixe avec un horodatage?

Étant donné que je suis sous Windows sans Cygwin, pourrait-je éviter en utilisant bash ou tout autre shell Unix?

Était-ce utile?

La solution

si vous utilisez la queue GNU, alors vous devriez être en mesure d'utiliser GNU gawk .

C:\test>tail -F file  | gawk.exe "{s=systime(); print strftime(\"%Y-%m-%d:%H:%M:%S\",s),$0}"

Autres conseils

Vous pouvez utiliser une boucle while:

tail -f logfile | while read line;
do
    echo $(date) $line;
done

Implique en cours Date pour chaque ligne bien. Vous pouvez utiliser les options de sortie de format de la commande date pour obtenir le format d'horodatage que vous voulez.

Je Perl très basique équivalent soit (script.pl):

while (<>) {
    my $date = scalar localtime;
    print $date . " " . $_;
}

tail -f logfile | perl script.pl

Peut-être pourriez-vous utiliser un script perl avec File :: Tail et DateTime?

use File::Tail;
use DateTime;
my $ref=tie *FH,"File::Tail",(name=>$ARGV[0]);
while (<FH>) {
    my $dt = DateTime->now();
    print "[", $dt->dmy(), " ",$dt->hms(),"] $_";
}

On dirait que le module File::Tail a été conçu spécifiquement pour la lecture dans le journal Appended fichiers.

Il peut être intéressant de regarder.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top