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

How to create a log folder before rails application loads the config.logger

  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 服务器启动时。它说 "Automatic creation of logging directories has been deprecated in rails"。 SEE Kevin Bedell Answer

如何在 rails 应用程序启动时创建文件夹,以便在应用程序启动时创建文件夹并且日志可以访问创建的文件夹。

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

复制粘贴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