加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在Rails中过滤长日志参数

发布时间:2020-12-17 03:17:45 所属栏目:百科 来源:网络整理
导读:我允许用户在我的网站上传文件.其中一些文件可能非常大,它占用了我的大量日志文件.所以我不希望它出现.我知道: config.filter_parameters += [:password] 过滤某些参数.但问题是它的参数是这样的哈希: { :person = { :name = 'bob',:file = { :data = 'rea
我允许用户在我的网站上传文件.其中一些文件可能非常大,它占用了我的大量日志文件.所以我不希望它出现.我知道:

config.filter_parameters += [:password]

过滤某些参数.但问题是它的参数是这样的哈希:

{
   :person => { 
      :name => 'bob',:file => { 
         :data => 'really long data. this can be tens of thousands of characters long' 
      }
   }
}

我可以将数据添加到filter_parameters但是这会在整个站点中隐藏大量日志,因为数据是一个公共密钥(我也无法将其重命名为更加模糊的东西). filter_parameters是否可以接受嵌套参数?或者是否有另一种限制所有参数长度的方法,因此如果它们大于某个大小,它将不会存储在我的日志文件中.

解决方法

我最终在我的application.rb中放了这样的东西

config.filter_parameters << lambda do |k,v|
  if k == 'data' && v && v.class == String && v.length > 1024
    v.replace('[FILTER]')
  end
end

我找不到更好的方法来做到这一点.所以我在params中寻找关键的“数据”.如果该数据的值是一个字符串并超过一定长度,我只需将其替换,以便日志不会那么混乱.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读