2017-09-27 9 views
0

レールアプリに実行ファイルがあります(bin/log_data)。このファイルでは、Rails.loggerへのアクセス権を持っているために、私は、次のファイルを必要とする必要があります。Rails.loggerを実行ファイルにロードするには?

APP_PATH = File.expand_path('../config/application', __dir__) 
require 'rails/commands' 

これはbin/log_dataを実行し、この一つのプロセス全体レールの環境をロードし、私はアプローチが利き少し重いだと思います。私が `Rails.logger.info(「ログには比較的重要な何か」)をすることができるように、誰も私と一緒に共有することができますか?Rails.logger

また、出力をlog/development.logに転送するため、背景情報を入力すると、log/development.logになってしまいます。これは、私のアプリを尾行したときに私のherokuログに記録されたいものにとって重要です。あなたが本当にモジュールを作成Rails.loggerとして、それを呼び出したい場合は

require 'active_support/logger' 
APP_PATH = File.expand_path('../config/application', __dir__) 
rails_env = ENV["RAILS_ENV"] || "development" 
logger = ActiveSupport::Logger.new(APP_PATH + "/logs/#{rails_env}.log") 

答えて

0

あなただけActiveSupport::Loggerインスタンスを作成することができます

それは強要と同じ設定を持っていないことを
require 'active_support/logger' 
require 'active_support/string_inquirer' 
APP_PATH = File.expand_path('../config/application', __dir__) 
logger = ActiveSupport::Logger.new(APP_PATH + "/logs/#{rails_env}.log") 

module Rails 
    class << self 
    attr_reader :logger 
    attr_reader :env 
    end 
    self.env = ActiveSupport::StringInquirer.new(ENV["RAILS_ENV"] || "development") 
    self.logger = ActiveSupport::Logger.new(APP_PATH.join("logs", "#{self.env}.log")) 
end 

注意Railsロガーはログレベルと書式設定に関しては、実際にはRailsアプリケーションを起動するだけで入手できます。

関連する問題