我可以禁止发送到控制器方法的日志记录参数吗?
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]
希望对您有所帮助!
我当前项目之一的最后一步是使用 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]
希望对您有所帮助!