On Nov 28, 2007 4:20 PM, Oliver <fwang2 / gmail.com> wrote: > Thanks to both of you for the solution. > > The double while loop seems a bit more concise, but it depends on > File#gets method handles the changing file content correctly. I will > give it a spin. > > Best, > > Oliver > > On Nov 28, 3:33 pm, Christian von Kleist <cvonkle... / gmail.com> wrote: > > You can do something like this: > > > > f = File.new('logfile.log') > > > > while true > > while(line = f.gets) > > puts line > > end > > sleep 5 > > end > > > > > On Nov 28, 2007 3:21 PM, Gary Wright <gwtm... / mac.com> wrote: > > > > > > > > > On Nov 28, 2007, at 3:05 PM, Oliver wrote: > > > > One process periodically will append its output to a file (which is > > > > not under my control), I want to write a ruby problem to detect and > > > > report only the *new* stuff that went into the output file ... Besides > > > > the brute force way such as opening the file and counting the lines > > > > etc, is there a better solution to it? > > > > > You can use File.stat('filename').size to get the number of bytes in > > > the file or .mtime to find the last modification time. If the bytes > > > and/or time changes you can then open the file and grab the new lines. > > > > > Gary Wright > > > You're welcome! That approach has worked for me many times in the past in many languages, including Ruby. Give it a run!