Comment puis-je suivre un fichier journal et insérer horodatages, en utilisant Perl?
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?
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.