in reply to Parsing a specific section of a log file

Is there any chance of tampering with the program/script that produces the log, and have it perform whatever task you want this log monitoring script to do at the time those things would be written into the log?

This does ofcourse assume bundles of things about your situation, but it may still be a little cleaner for you to catch the data before it goes into the log file, so you don't have to drag it out again.

@_=qw; ask f00li5h to appear and remain for a moment of pretend better than a lifetime;;s;;@_[map hex,split'',B204316D8C2A4516DE];;y/05/os/&print;

Replies are listed 'Best First'.
Re^2: Parsing a specific section of a log file
by vxp (Pilgrim) on Mar 01, 2007 at 04:05 UTC
    no :)

    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!