2010-01-16 65 views
7

我正在開發5個不同的rails項目,還重構了一些(從較舊的rails版本移動到2.3) - 從日誌文件中提取錯誤信息的最佳方式是什麼查看所有的折舊警告,運行時錯誤等等,所以我可以改進代碼庫?從rails日誌文件中提取錯誤信息

有沒有你可以推薦的任何服務或庫,這實際上幫助rails的日誌文件解析?

回答

7

閱讀關於grep linux命令。

http://www.cyberciti.biz/faq/howto-use-grep-command-in-linux-unix/

我不知道是什麼樣的Rails錯誤日誌格式,但我與客人警告或錯誤的每一行含有「警告」或「錯誤」二字。

然後,它會是這樣:

grep -E "error|warning" logfile.txt

的機器人錯誤和警告

grep "error" logfile.txt

錯誤

grep "warning" logfile.txt

的警告

,如果你希望實時看到新的錯誤和警告,試試這個

tail -f logfile.txt | grep -E "error|warning"

tail -f logfile.txt | grep "error"

tail -f logfile.txt | grep "warning"

希望我能幫助你;)和我希望我對Rails中的日誌格式沒有錯誤

+0

好的,我剛剛嘗試了一個初始化正則表達式來分析似乎可以工作的rails日誌文件:(處理。*?)(\ n \ n \ n | \ z) - 這是將請求分成可處理的部分。 .. – z3cko 2010-01-17 03:08:57

+0

啊,對不起。我錯誤的軌道日誌文件的格式。 – kjagiello 2010-01-17 08:23:04

+4

你真的想在你的grep語句中使用** - A **(在上下文之後)或** - C **(在上下文之前和之後)行包含器,這樣你也可以獲得跟蹤。例如:grep -C7 -E「error | warning」logfile.txt – Tsagadai 2012-09-24 02:35:22

1

我使用hoptoadapp,http://www.hoptoadapp.com/pages/home有一個免費的味道,它將您的錯誤消息記錄到他們的數據庫,並且它們提供了一個易於使用的界面。你所要做的就是安裝這個插件:http://github.com/thoughtbot/hoptoad_notifier

這對以前的錯誤沒有幫助,但對於隔離當前正在運行的應用程序的問題非常有用。

+0

感謝您的指針,這看起來像一個非常方便的Web應用程序。我會仔細研究一下。 – z3cko 2010-01-17 03:01:39

3

我發現request-log-analyzer項目非常有用。

您可以確定grep日誌以查找錯誤並將其轉儲出去,但這對於收集關於不同操作以及它們花費多長時間的所有信息都非常出色。

這裏是一些sample output

這是我在接到電話時說的第一件事:「我的網站很慢,我需要幫助解決它。」

Hoptoad和/或Exceptional非常適合持續性錯誤,但它們不會跟蹤日誌運行請求。像New Relic這樣的東西對此很有好處。

+0

太棒了!非常感謝。搜索請求日誌分析器後,我也想出了更多的軌道日誌記錄:http://whynotwiki.com/Rails_/_Performance http://jacqueschirag.wordpress.com/2008/10/15/rails-log-analyzers/ – z3cko 2010-01-17 03:06:39