如何使Rails.logger.debug打印哈希更具可读性

Use*_*159 11 debugging logging ruby-on-rails pretty-print

我正在使用Rails.logger.debug打印变量进行调试.问题是它以不可读的格式打印哈希(无法区分键和值).例如,我将以下行添加到我的代码库中

#code_base.rb
 my_hash = {'a' => 'alligator', 'b'=>'baboon'}
 Rails.logger.debug my_hash
Run Code Online (Sandbox Code Playgroud)

然后我启动我的rails应用程序并输入

  tail -f log/development.log 
Run Code Online (Sandbox Code Playgroud)

但是当my_hash被打印出来时,它看起来像

  bbaboonaalligator
Run Code Online (Sandbox Code Playgroud)

密钥和值被压缩,无法解析.你们知道我应该怎么做才能解决这个问题吗?

Use*_*159 16

没关系,我找到了自己问题的答案.我需要用

my_hash = {'a' => 'alligator', 'b'=>'baboon'}
Rails.logger.debug "#{my_hash.inspect}"
Run Code Online (Sandbox Code Playgroud)

然后,它看起来像

{"b"=>"baboon", "a"=>"aligator"}
Run Code Online (Sandbox Code Playgroud)


LpL*_*ich 10

当你使用to_yamleg 时,它更容易阅读:

logger.debug my_hash.to_yaml

这是一种易于阅读的多行格式.该inspect方法只是喷出一个字符串.