我的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 。
那么如何过滤结果?
答案 0 :(得分:2)
由于这是一个rails应用程序,您应该考虑使用logger
而不是puts
。这会将日志输出到控制台,并将它们存储在文件/ db中,具体取决于rails的配置方式。默认情况下,日志将存储在log/
目录中的文件中,以便您以后可以搜索它们。来自本地开发环境的日志将存储在log/development.log
日志可以有不同级别:debug
,:info
,:warn
,:error
,:fatal
和:unknown
。在你的情况下,听起来你正在调试,所以你可以使用
logger.debug "Value is: #{value}"
但是,如果要标记日志,那么可能很容易找到来自同一控制器的所有日志,您可以使用日志标记。在这种情况下,您可以使用
行 logger.tagged("NameOfController") { logger.debug value }
这将输出[NameOfController] value
然后,正如它所说的那样,你可以grep用于查找给定控制器的所有日志的标签上的输出或搜索日志文件。
rails server -p $PORT -b $IP | grep "[NameOfController]"
您可以在官方导轨指南here中找到有关使用logger
和其他导轨调试的详细信息,以及有关标记here的信息。
另一种选择是使用调试器而不是记录。
答案 1 :(得分:0)
您可以使用grep。
过滤输出请试一试。
rails server -p $PORT -b $IP | grep "Hello World"