无法使文件尾部正常工作



出于好奇,我尝试了文件尾巴ruby库,以查看它如何与Ruby Code一起使用。但是,代码似乎不起作用。

这是我疲倦的( logger.rb ):

$:.unshift File.dirname(__FILE__)
filename = 'logger.log'
require "file-tail"
File.open(filename) do |log|
  log.extend(File::Tail)
  log.interval = 10
  log.backward(10)
  log.tail { |line| puts line }
end

我的 logger.log 文件在同一目录中。现在,当我运行时: $ ruby logger.rb时,我会从日志中看到最后10行,但是当我打开logger.log文件附加一些日志数据时,该控制台不会显示任何进度。我的意思是它不会输出我附加的新日志。

我认为这可能存在问题。因此,我尝试继承并在继承类中包含file ::尾巴,例如:

$:.unshift File.dirname(__FILE__)
filename = 'logger.log'
require "file-tail"
class FileTail < File
  require "file-tail"
  include File::Tail
end
log = FileTail.new(filename)
log.interval = 10
log.backward(10)
log.tail { |line| print line }

但是这行为相同!

任何指针?

我在Mac OC X 10.8.5上使用Ruby-2.0.0-P353安装。

另外,请告诉我是否有人在Ruby中实现了Web版本?

我不好。当我关闭Logger文件的所有流时,这起作用。我在Ruby代码中打开了文件,但是没有关闭文件流。也许这就是为什么我没有使用文件尾部在控制台上看到任何日志输出的原因。

因此,请确保关闭使用 file-tail 程序的日志/文本文件的所有流。

最新更新