簡體   English   中英

過濾終端結果以獲取“ puts”

[英]Filter terminal results to just get the “puts”

我的ruby代碼中有一些debuge打印行。 將其視為v=10 puts v

我只是使用此命令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
.
.
.

但是我只想拿10

那么如何過濾結果?

由於這是一個Rails應用程序,因此您應該考慮使用logger而不是puts 這會將日志輸出到控制台,並將它們存儲在文件/ db中,具體取決於配置rails的方式。 默認情況下,日志將存儲在log/目錄中的文件中,因此您以后可以搜索它們。 來自本地開發環境的log/development.log將存儲在log/development.log

日志可以具有不同的級別:debug:info:warn:error:fatal:unknown 就您而言,這聽起來像是在調試,因此您可以使用以下行進行記錄

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

但是,如果要標記日志,那么也許很容易找到來自同一控制器的所有日志,則可以使用日志標記。 在這種情況下,您可以使用

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

這將輸出[NameOfController] value

然后,就像itmammoth所說的那樣,您可以在標記上復制輸出,該標記用於查找給定控制器的所有日志或搜索日志文件。

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

您可以在此處的官方Rails指南中找到有關使用logger和其他Rails調試的更多信息,並在此處找到有關標記的信息

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

您可以使用grep過濾輸出。

請嘗試這個。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM