Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

viewing log via HTML

by pappajaz (Novice)
on Apr 27, 2001 at 02:24 UTC ( #75948=perlquestion: print w/replies, xml ) Need Help??

pappajaz has asked for the wisdom of the Perl Monks concerning the following question:

I am in need of some assistance. I am trying to tail -f a log and view it in web browser.

Other ideas were to parse the incoming text and highlight it on output. I have made a file that does a tail -f in perl (to console) with no problem but I have been have difficulty outputting this in html.

Any help is greatly appreciated.

Replies are listed 'Best First'.
Re: viewing log via HTML
by tinman (Curate) on Apr 27, 2001 at 02:59 UTC

    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 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();

      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();


      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.
Re: viewing log via HTML
by coolmichael (Deacon) on Apr 27, 2001 at 11:57 UTC
    I'm not quite sure I understand your question, but if you mean to serve the logs on the web, you could decide to leave the logs in plain text, and not bother with HTML at all. print "Content-Type: text/plain\n\n"; and then you can read from the log file and print it to stdout.


    the blue haired monk

      The format is not as much of an issue as getting the data in HTML. I really appreciate everyone's help on this. Thank you.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://75948]
Approved by root
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (5)
As of 2020-07-08 11:51 GMT
Find Nodes?
    Voting Booth?

    No recent polls found