Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从ActiveRecord::Base.logger中删除SQL查询_Sql_Ruby On Rails - Fatal编程技术网

如何从ActiveRecord::Base.logger中删除SQL查询

如何从ActiveRecord::Base.logger中删除SQL查询,sql,ruby-on-rails,Sql,Ruby On Rails,我正在使用RubyonRails开发一个应用程序 每次调用新操作时,我都希望删除ActiveRecord::Base.logger对象中的旧查询,基本上是在ENV=production的位置 目标不是像使用config.log\u level:info那样删除所有查询。我只需要最后一个查询就可以用这些查询构建一个文件 下面是一些代码: 在库中: module SqlHunter class ActiveRecord::ConnectionAdapters::AbstractAdapter

我正在使用RubyonRails开发一个应用程序

每次调用新操作时,我都希望删除ActiveRecord::Base.logger对象中的旧查询,基本上是在ENV=production的位置

目标不是像使用config.log\u level:info那样删除所有查询。我只需要最后一个查询就可以用这些查询构建一个文件

下面是一些代码:

在库中:

module SqlHunter
  class ActiveRecord::ConnectionAdapters::AbstractAdapter
      @@queries = [] # without this line it work perfectly
      @@logging = false
      cattr_accessor :queries, :logging
      def log_info_with_trace(sql, name, runtime) 
        @@queries << sql if @@logging 
      end
      alias_method_chain :log_info, :trace
  end
end

我在这里问了一个老问题

感谢塔马斯·梅泽伊和达米恩·马蒂厄最后的回答


Mondher

那么您想在生产模式下过滤SQL查询,还是我遗漏了要点

如果只是过滤,prod模式将自动过滤sql查询。如果要在开发时进行筛选,请编辑config/environments/development.rb文件并插入

config.log_level = :info
本质上,它将过滤SQL和所有其他低于信息级别的内容(调试内容)

如果您想要更复杂的解决方案,您可以在

RUBY_HOME/lib/gems/1.8/gems/activerecord-nnn/active_record/connection_adapters/abstract_adapter.rb

如果您运行的是高流量站点或受约束的环境,请尝试使用资源消耗较少的功能替换该日志功能。不断地打开和关闭一个文件肯定不是一个好主意,也许将这些日志发送到队列并推迟写入会更好地支持您。嗨,塔马斯,谢谢您的回答,但我不喜欢删除所有查询。我重新编辑了我的问题,你可以在星期一有更多的想法
config.log_level = :info
RUBY_HOME/lib/gems/1.8/gems/activerecord-nnn/active_record/connection_adapters/abstract_adapter.rb