From: pat eyler Date: 2005-07-15T00:26:34+09:00 Subject: Re: Help: very simple script problem Here's a working version that I've made some changes to (some of the changes were merely to show a different way of doing things -- but I got rid of the cgi module since you weren't really making enough use of it to justify the extra load time): #!/usr/bin/ruby My_Title = "Testing Log Read" Log_File = "/var/log/apache2/error.log" puts < #{My_Title} EOF if File.exists? Log_File lines = File.open(Log_File).readlines lines.each_with_index do |line, index| index % 2 == 0 ? color = "#dddddd" : color="#cccccc" puts " \n " entries = line.chop.split(/\n/) entries.each do |field| puts "" end puts "\n\n" end else puts "No File Found\n" end puts "\n" On 7/14/05, Tristan Knowles wrote: > Hi, > > After reading up on Ruby I thought it sounded good and > decided to learn it so I can manipulate my files on my > linux server such as log, csv, conf etc. Anyway, i'm > a beginner when it comes to programming, so bear with > me. > > I use the Asterisk PBX and came across this script > here which reads a csv file and puts each record into > an html table: > http://rubyforge.org/snippet/detail.php?type=snippet&id=76 > > > Anyway, I thought I would then apply this basic > concept to a log file, but I cannot get it to display > through a web browser. Here is my script: > > > =========== > #!/usr/bin/ruby > > My_Title = "Testing Log Read" > Log_File = "/var/log/apache2/error.log" > > require 'cgi' > > cgi = CGI.new > printf cgi.header("Content-type" => "text/html\n\n") > > > printf "\n\n" > printf "#{My_Title}\n" > printf "\n\n" > printf "
Call records
#{index}#{field}
\n\n" > if File.exists? Log_File > lines = File.open(Log_File).readlines > lines.each_with_index do |line, index| > printf " \n ", > index % 2 == 0 ? ' bgcolor="#dddddd"' : ' > bgcolor="#cccccc"', index + 1 > entries = line.chop.split(/\n/) > entries.each_with_index do |field, index| > printf "", entries > end > printf "\n\n" > end > else > printf "No File Found\n" > end > printf "\n" > =========== > > > If I comment out all the printf commands related to > web and cgi, and run it through the shell, it seems to > be taking each line and putting it into
Call > records
%d%s
> brackets, but I can't get it to display through a > browser, it stops at the third printf command. > > > I have tried heaps of different things, but feel like > i'm running around in circles now. > > Any advise with this one? > > > Cheers. > Tristan > > > > > > > ___________________________________________________________ > Yahoo! Messenger - NEW crystal clear PC to PC calling worldwide with voicemail http://uk.messenger.yahoo.com > > -- thanks, -pate ------------------------- We are often unable to tell people what they need to know, because they want to know something else, and would therefore only misunderstand what we said - the Raven (George MacDonald, Lilith)