Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: viewing log via HTML

by tinman (Curate)
on Apr 27, 2001 at 02:59 UTC ( #75956=note: print w/replies, xml ) Need Help??


in reply to viewing log via HTML

I'm not sure about exactly how you want to format your logfile entries in HTML...

That being said, I think you should be looking at File::Tail as a useful way of tailing an access log..

or, the following: its ugly,(and I don't recommend it) but it will work

while (1) { while (<INPUT>) { .... } sleep $delay_period; seek(INPUT, 0, 1); }
What this code does is read the file, sleep for $delay_period, and then go to the end of the file from the current point..

To format into HTML, well, assuming you just want to make it appear readable, so what you can do is add a <br> to the end of each line.. so, use CGI.pm to complete the picture, using the following snippet..

#!/usr/bin/perl -w use CGI; use strict; my $query = new CGI; print $query->header(), $query->start_html(-title=>"My log file"), $query->h1('Tail'); # put your tailing method here while (1) { while (my $input = <INPUT>) {join('',$input,'<br/>'); print $input +;} sleep $delay_period; seek(INPUT, 0, 1); } print $query->end_html();

HTH

Replies are listed 'Best First'.
(Ovid - Encode entities)Re: Re: viewing log via HTML
by Ovid (Cardinal) on Apr 27, 2001 at 03:22 UTC
    Don't forget to encode your data. Angle brackets in the log file will make life miserable otherwise.
    #!/usr/bin/perl -w use CGI; use strict; use HTML::Entities; my $query = new CGI; print $query->header(), $query->start_html(-title=>"My log file"), $query->h1('Tail'); # put your tailing method here while (1) { while (my $input = <INPUT>) { $input .= '<br/>'; print encode_entities( $input ); } sleep $delay_period; seek(INPUT, 0, 1); } print $query->end_html();

    Cheers,
    Ovid

    Join the Perlmonks Setiathome Group or just click on the the link and check out our stats.

      I tried this and it doesn't seem to load. I don't get any errors, it just keeps "waiting for a response". I took any html calls out and it worked fine to a term. Any ideas are appreciated.
        If you have checked your logs and are not getting an error, perhaps you need to unbuffer your output. Add $|++; to the top of the code:
        #!/usr/bin/perl -w use CGI; use strict; use HTML::Entities; $|++;
        For more information, see Suffering from Buffering.

        Also, try running the from the command line to see what the output is. Frankly, I didn't look at the code too closely. I just saw data being dumped to the screen that wasn't encoded and responded to that. Good luck!

        Cheers,
        Ovid

        Join the Perlmonks Setiathome Group or just click on the the link and check out our stats.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://75956]
help
Chatterbox?
[chacham]: there's a regexp function. if that can be used ina check() constraint...
[LanX]: Thanks, but no check constraints in MySQL :/
LanX 1 ..2 ..3 ..4 .. is erix missing ;-)
LanX is Discipulus reciting "Springtime for Hitler" ?
[choroba]: erix could tell you how to do it in Postgres
[LanX]: NOOOOOOOOOOOOOOO not again
[chacham]: wow, mysql really is as bad as i thougt
[choroba]: completion?
[LanX]: That's what he usually does when MySQL is mentioned ;-)

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (12)
As of 2017-03-30 15:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Should Pluto Get Its Planethood Back?



    Results (360 votes). Check out past polls.