Watch/read a growing log file

后端 未结 7 1121
春和景丽
春和景丽 2020-12-08 00:54

I have a log file that is constantly growing. How can I watch and parse it via a Ruby script?

The script will parse each new line as it is written to the file and ou

7条回答
  •  余生分开走
    2020-12-08 01:51

    def watch_for(file, pattern)
      f = File.open(file,"r")
      f.seek(0,IO::SEEK_END)
      while true do
        select([f])
        line = f.gets
        puts "Found it! #{line}" if line=~pattern
      end
    end
    
    watch_for("g.txt",/ERROR/)
    

    Thanks for the ezpz's idea, using the select method you get get what you want. The select method is listening the IO's stream, read the bytes what comes 'late'.

提交回复
热议问题