Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: viewing log via HTML

by tinman (Curate)
on Apr 27, 2001 at 02:59 UTC ( [id://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
Domain Nodelet?
Node Status?
node history
Node Type: note [id://75956]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (4)
As of 2024-03-29 11:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found