本番環境のproduction.logにログが出力されない
本番環境のlog/production.log
にログが出力されず困っています。
開発環境では正常にログがlog/development.log
に出力されます。
本番環境下でlog/production.log
にログを出力させたいのでどなたかお教えください。
各環境の設定ファイルは以下のようになっております。
本番環境
# config/environments/production.rb
AppTool::Application.configure do
config.cache_classes = true
config.eager_load = false
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.serve_static_assets = false
config.static_cache_control = "public, max-age=3600"
config.assets.js_compressor = :uglifier
config.assets.compile = false
config.assets.digest = true
config.assets.version = '1.0'
config.log_level = :info
config.action_mailer.raise_delivery_errors = false
config.i18n.fallbacks = true
config.active_support.deprecation = :notify
config.log_formatter = ::Logger::Formatter.new
config.logger = Logger.new(config.paths["log"].first, 'weekly') # 週ごとにローテート
config.logger.level = Logger::WARN
config.logger.formatter = Logger::Formatter.new
config.logger.datetime_format = "%Y-%m-%d %H:%M:%S"
end
開発環境
# config/environments/development.rb
AppTool::Application.configure do
config.cache_classes = false
config.eager_load = false
config.consider_all_requests_local = true
config.action_controller.perform_caching = false
config.action_mailer.raise_delivery_errors = false
config.active_support.deprecation = :log
config.active_record.migration_error = :page_load
config.active_record.schema_format = :sql
config.assets.debug = true
config.logger = Logger.new(config.paths["log"].first, 'weekly') # 週ごとにローテート
config.logger.level = Logger::DEBUG
config.logger.formatter = Logger::Formatter.new
config.logger.datetime_format = "%Y-%m-%d %H:%M:%S"
end
Rails.logger
の値をコマンドラインで確認すると以下のようになります。
本番環境
RAILS_ENV=production bundle exec rails c
irb(main):003:0* Rails.logger
=> #<Logger:0x007f70e1d8a5a0 @progname=nil, @level=1,
@default_formatter=#<Logger::Formatter:0x007f70e1d8a528
@datetime_format=nil>, @formatter=#
<ActiveSupport::Logger::SimpleFormatter:0x007f70e1d85500
@datetime_format=nil>, @logdev=#<Logger::LogDevice:0x007f70e1d8a4b0
@shift_size=nil, @shift_age=nil, @filename=nil, @dev=#<IO:<STDOUT>>,
@mutex=#<Logger::LogDevice::LogDeviceMutex:0x007f70e1d8a488
@mon_owner=nil, @mon_count=0, @mon_mutex=#<Mutex:0x007f70e1d8a438>>>>
開発環境
RAILS_ENV=development bundle exec rails c
[1] pry(main)> Rails.logger
=> #<Logger:0x007ff0eb129538
@default_formatter=
#<Logger::Formatter:0x007ff0eb129510 @datetime_format="%Y-%m-%d %H:%M:%S">,
@formatter=#<Logger::Formatter:0x007ff0eb1292b8
@datetime_format=nil>,
@level=0,
@logdev=#<Logger::LogDevice:0x007ff0eb129498
@dev=#<File:/Users/xf-dev-mac02/apptool/log/development.log>,
@filename="/Users/xf-dev-mac02/apptool/log/development.log",
@mutex=#<Logger::LogDevice::LogDeviceMutex:0x007ff0eb129470
@mon_count=0,
@mon_mutex=#<Mutex:0x007ff0eb129420>,
@mon_owner=nil>,
@shift_age="weekly",
@shift_size=1048576>,
@progname=nil>
開発環境では@filename
の値が指定されるようになっています。