代码之家  ›  专栏  ›  技术社区  ›  dsp_099

有没有办法阻止铁轨记录所有东西?

  •  3
  • dsp_099  · 技术社区  · 11 年前

    我不想让它记录传入的IP,我不想它记录任何内部事件。
    我只想让Rails在请求到来时处理它们,仅此而已。

    这样做可能吗?

    如何防止development.log或production.log不断增长?

    3 回复  |  直到 11 年前
        1
  •  3
  •   Chris Heald    11 年前

    您可以将Rails日志记录功能替换为日志记录到/dev/null的记录器:

    class NullLoggerRailtie < Rails::Railtie
      initializer 'null_logger', :before => 'initialize_logger' do |app|
        Rails.logger = ActiveRecord::Base.logger = ActionController::Base.logger = ::Logger.new("/dev/null")
      end
    end
    

    这将把所有Rails日志重新路由到null设备,而不是让它去任何地方的文件。日志记录仍然会发生,但它会立即被销毁。

        2
  •  3
  •   Michael Durrant    11 年前

    设置日志级别。

    可用的日志级别为: :debug, :info, :warn, :error :fatal

    如果您想知道当前的日志级别,可以调用Rails.logger.level方法。

    要更改日志级别,请使用 config.log_level = :fatal 在您的环境初始化程序中,或者 Rails.logger.level = 0 随时联机

    另一个选项可能是将日志文件象征性地链接到/dev/null

        3
  •  2
  •   Arturo Herrero Viren    6 年前

    简化 Chris Heald answer ,您可以将记录器设置为 /dev/null 按环境:

    Rails.application.configure do
      config.logger = Logger.new("/dev/null")
    end
    

    只需将代码放在正确的文件中即可:

    • 开发: config/environments/development.rb
    • 测试: config/environments/test.rb
    • 生产: config/environments/production.rb
    • 所有环境: congig/applications.rb