2014-01-28 26 views
0

出於好奇,我嘗試了file-tail ruby​​庫以查看它如何與ruby代碼一起工作。但是,代碼似乎並沒有工作。無法獲得文件尾部工作

這是我累了(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文件附加一些日誌數據時,控制檯不顯示任何進度。我的意思是它不會輸出我附加的新日誌。

我認爲可能存在這個問題。所以,我想繼承和包括繼承的類文件::尾,像這樣:

$:.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 } 

但是這個行爲相同的方式!

任何指針?

我在安裝了ruby-2.0.0-p353的MAC OC X 10.8.5上運行。

另外,請讓我知道是否有人在Ruby中實現了網頁版尾巴?

+0

您是否將手動更新保存到文件中? –

+0

要記錄文件,對不對?是的,我做到了。 – Surya

+0

試過了,它爲我工作。 –

回答

0

我的壞。當我關閉記錄器文件的所有流時,這是有效的。我打開了我的ruby代碼中的文件,但沒有關閉文件流。也許這就是爲什麼我沒有看到我的控制檯上使用文件尾的任何日誌輸出。

因此,請確保關閉您正在運行的所有日誌/文本文件流,並使用文件尾程序。