2
A
回答
2
您可以從您的Ruby腳本調用Linux的tail -number_of_lines file_name
命令,讓它打印控制檯或捕獲輸出,並自己打印出來(如果你需要在打印前做這些方針的東西)
4
看看File::Tail寶石。
1
我們有一個包含日誌文件列表的配置文件;例如,像這樣:
---
- C:\fe\logs\front_end.log
- C:\mt\logs\middle_tier.log
- C:\be\logs\back_end.log
配置文件的格式是一個yaml simple sequence,因此假設我們命名這個文件「settings.yaml」
紅寶石腳本採取每個文件的尾和控制檯輸出可能是這樣的:
require 'yaml'
require 'file-tail'
logs = YAML::load(File.open('settings.yaml'))
threads = []
logs.each do |the_log|
threads << Thread.new(the_log) { |log_filename|
File.open(log_filename) do |log|
log.extend(File::Tail)
log.interval = 10
log.backward(10)
log.tail { |line| p "#{File.basename(the_log,".log")} - #{line}" }
end
}
end
threads.each { |the_thread| the_thread.join }
注:顯示每一行,我想與來自其起源的文件名前綴它,...這對我來說是一個不錯的選擇,但你可以編輯腳本隨你喜歡而改變;對於尾部參數是相同的。
如果您的環境中缺少file-tail,請按照@Mark Thomas在他的回覆中發佈的鏈接進行操作;即您需要:
> gem install file-tail
+0
@codecompleting:我在Microsoft Windows [Version 6.1.7601]上用ruby 1.9.3p125(2012-02-16)[i386-mingw32]測試了這個解決方案。 – 2012-11-16 18:06:13
相關問題
- 1. '部署'寶石紅寶石腳本
- 2. 並行運行腳本紅寶石
- 3. 在我的網站上運行這個紅寶石腳本
- 4. 從紅寶石腳本內部運行git
- 5. 紅寶石運行外部程序停止腳本
- 6. 寶石cmd從紅寶石腳本
- 7. 閱讀紅寶石文本文件行
- 8. 運行和紅寶石文件
- 9. 更改日誌在Rails /紅寶石
- 10. 紅寶石 - 如何運行Windows cmd上的紅寶石代碼
- 11. 在一個文件中換行的紅寶石腳本
- 12. 紅寶石寶石不會運行
- 13. Shell腳本>紅寶石
- 14. bash腳本紅寶石
- 15. 紅寶石腳本錯誤
- 16. 紅寶石文本
- 17. 紅寶石Win32文件只讀標誌
- 18. 紅寶石郵件寶石,如何編寫腳本郵件
- 19. 紅寶石:在現有的Ruby進程運行腳本
- 20. Selenium日誌如何訪問紅寶石?
- 21. 紅寶石有日誌查看器嗎?
- 22. 如何運行紅寶石
- 23. 無法再運行OSX上紅寶石
- 24. 獨立紅寶石腳本中的紅寶石
- 25. 將紅寶石從紅寶石傳遞給bash腳本?
- 26. 有一個紅寶石腳本輸出什麼版本的紅寶石正在運行它
- 27. 紅寶石退出尾部並繼續按下腳本的下一部分
- 28. 如何運行紅寶石寶石的特定版本
- 29. 紅寶石記錄器 - 何時關閉日誌文件
- 30. 每個線程的日誌文件紅寶石
什麼平臺? 「tail」命令對於執行此操作非常方便,並且比自己打開和查找文件要快得多。 – tadman 2011-12-16 18:18:28