如何在rails应用程序加载config.logger之前创建日志文件夹

时间:2017-02-03 16:48:04

标签: ruby-on-rails ruby logging jruby warbler

  1. 我有一个rails应用程序。我正在使用Jruby / Warble / Jetty来创建可执行的war文件。将war文件复制粘贴到单独的文件夹中。
  2. 我希望应用程序在war文件之外登录。所以我正在使用此LINK
  3. 的解决方案

    3

    config.logger = ActiveSupport::BufferedLogger.new(File.join(ENV['RAILS_ENV'], "#{Rails.root}/logs/#{ENV['RAILS_ENV']}.log"))
    
    1. 当rails服务器启动时。它说"在rails"中已经弃用了自动创建日志记录目录。 SEE Kevin Bedell Answer
    2. 如何在rails应用程序启动时创建文件夹,以便在应用程序启动时创建文件夹,并且日志可以访问创建的文件夹。

      我应该在/ config下的哪个文件夹中添加代码,以便它首先加载创建目录的代码然后使用配置?谢谢。

1 个答案:

答案 0 :(得分:0)

复制粘贴它config / environments / development.rb

log_file_name = "#{Rails.root}/logs/#{ENV['RAILS_ENV']}.log"
unless File.exist?(File.dirname(log_file_name))
  FileUtils.mkdir_p(File.dirname(log_file_name))
  File.new(log_file_name, 'a+')
end

config.logger = ActiveSupport::BufferedLogger.new(File.join("#{Rails.root}", "logs", "#{ENV['RAILS_ENV']}.log"))

对于File.new中的“a +”,请参阅此LINK

您还可以使用config / application.rb LINK