2015-10-18 43 views
0

我在我的ruby代碼中有一些打亂的打印行。將其視爲v=10 puts v過濾器終端結果只是得到「puts」

我只是用這個命令rails server -p $PORT -b $IP

在終端上運行我的代碼有很多未使用的信息,如

=> Booting WEBrick 
=> Rails 4.2.1 application starting in development on http://0.0.0.0:8080 
=> Run `rails server -h` for more startup options 
=> Ctrl-C to shutdown server 
[2015-10-18 08:40:17] INFO WEBrick 1.3.1 
[2015-10-18 08:40:17] INFO ruby 2.2.2 (2015-04-13) [x86_64-linux] 
[2015-10-18 08:40:17] INFO WEBrick::HTTPServer#start: pid=8290 port=8080 

. 
. 
. 
10 
. 
. 
. 

但我只是想獲得。

那麼如何過濾結果呢?

回答

2

由於這是Rails應用程序,你應該考慮使用的logger代替puts。這會將日誌輸出到控制檯,並根據如何配置rails來將它們存儲在文件/數據庫中。默認情況下,日誌將存儲在log/目錄中的文件中,以便稍後可以搜索它們。從您的本地開發環境的日誌將被保存在log/development.log

日誌可以有不同程度的:debug:info:warn:error:fatal:unknown。對你來說,這聽起來像你正在調試,所以你可以登錄與線

logger.debug "Value is: #{value}"

如果你要標記的記錄,雖然如此,也許從同一個控制器的所有日誌很容易找到,你可以使用日誌標籤。在這種情況下,你可能會使用線

logger.tagged("NameOfController") { logger.debug value }

這將輸出[NameOfController] value

然後,itmammoth說,你可以grep在標籤上您用來找到一個給定的所有日誌的輸出控制器或搜索日誌文件。

rails server -p $PORT -b $IP | grep "[NameOfController]"

你可以找到在官方軌使用logger等軌調試的詳細信息指南here和有關標記here信息。

另一種選擇是使用調試器而不是日誌記錄。

0

您可以使用grep過濾輸出。

請試試這個。

rails server -p $PORT -b $IP | grep "Hello World"