From: Tristan Knowles Date: 2005-07-15T01:20:53+09:00 Subject: Re: Help: very simple script problem Ahhh. Thats better :). Much easier to understand now. I didn't realise you could use puts to write plain html to a file, much quicker and easier than cgi. I can actually cut this down to this much now, not sure if i'm losing anything here, still seems to output the same. ====== #!/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" # where index == 5 puts "\n \n " puts "" end else puts "\n" end puts "\n" ====== Thanks again for your help:). Tristan --- pat eyler wrote: > 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 < Content-type: text/html > > > > #{My_Title} > > >
Apache Log Records
#{index}#{line}
No File Found:
Check path: #{Log_File}
> > 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) > > ___________________________________________________________ How much free photo storage do you get? Store your holiday snaps for FREE with Yahoo! Photos http://uk.photos.yahoo.com