我可以禁止发送到控制器方法的日志记录参数吗?

Can I inhibit logging parameters sent to a controller method?

我当前项目之一的最后一步是使用 Ruby 的 'rubyzip' gem 创建 Zip 存档。为此,我创建了存档的内容,将这些内容放入名为 zip_content 的参数中,并将其发送到我的控制器的 show方法,用户可以单击按钮将存档下载到他们的计算机。

在开发模式下Rails自动将传递给控制器​​方法的参数内容写入控制台以及log/development.log。通常,当我开发 Rails 应用程序时,我喜欢查看传递给我的控制器方法的参数,如下所示:

Parameters: {"utf8"=>"✓", "authenticity_token"=>"LongStringOfCharacters==", 
"project"=>{"archive_file"=>"ARCHIVE_2019-10-02T154945.zip",  
"zip_content"=> ... long string of binary data snipped ... },
"commit"=>"Download ARCHIVE_2019-10-02T154945.zip"}

创建存档的应用程序部分工作正常,所以我真的不需要为了调试目的而查看参数,尤其是 sinze zip_content 很长,充满了二进制数据,把屏幕弄得乱七八糟。

有没有办法禁止记录这一种方法的参数?

如果版本很重要,我在这个项目中使用 Rails6。

谢谢。

config/initializers/filter_parameter_logging.rb 文件中更改此默认行

Rails.application.config.filter_parameters += [:password]

Rails.application.config.filter_parameters += [:password, :zip_content]

希望对您有所帮助!