in reply to Re: Parsing a specific section of a log file
in thread Parsing a specific section of a log file
its some java thing written by our development dept., i dont think theyd want to change it.. plus not really necessary either..
i followed suggestions here and here's the solution i came up with (used localtime instead of gmtime, gmtime() didnt return correct time)
use File::ReadBackwards; use POSIX "strftime"; my $success; my $items; my $earliest = POSIX::strftime( "%Y-%m-%d %H:%M:%S", localtime( time() + - 30 * 60 ) ); $bw = File::ReadBackwards->new( '/var/log/mmsagent/mmsagent.log' ) or die "can't read '/var/log/mmsagent/mmsagent.lo +g' $!" ; while ( defined( my $log_line = $bw->readline() ) ) { last if $log_line lt $earliest; if ($log_line =~ /STATUS = SUCCESS/) { print $log_line; } }
works perfect, only prints out the relevant lines if they happened within half an hour ago. much thanks to everyone involved for their help!
|
---|