lib/logstasher/railtie.rb in logstasher-0.8.6 vs lib/logstasher/railtie.rb in logstasher-0.9.0
- old
+ new
@@ -1,21 +1,60 @@
require 'rails/railtie'
require 'action_view/log_subscriber'
require 'action_controller/log_subscriber'
+require 'socket'
module LogStasher
class Railtie < Rails::Railtie
config.logstasher = ::ActiveSupport::OrderedOptions.new
config.logstasher.enabled = false
+ # Set up the default logging options
+ config.logstasher.controller_enabled = true
+ config.logstasher.mailer_enabled = true
+ config.logstasher.record_enabled = false
+ config.logstasher.view_enabled = true
+
+ # Try loading the config/logstasher.yml if present
+ env = Rails.env.to_sym || :development
+ config_file = File.expand_path "./config/logstasher.yml"
+
+ # Load and ERB templating of YAML files
+ LOGSTASHER = File.exists?(config_file) ? YAML.load(ERB.new(File.read(config_file)).result).symbolize_keys : nil
+
initializer :logstasher, :before => :load_config_initializers do |app|
+ if LOGSTASHER.present?
+ # process common configs
+ LogStasher.process_config(app.config.logstasher, LOGSTASHER)
+ # process environment specific configs
+ LogStasher.process_config(app.config.logstasher, LOGSTASHER[env].symbolize_keys) if LOGSTASHER.key? env
+ end
+
app.config.action_dispatch.rack_cache[:verbose] = false if app.config.action_dispatch.rack_cache
LogStasher.setup_before(app.config.logstasher) if app.config.logstasher.enabled
end
initializer :logstasher do
config.after_initialize do
LogStasher.setup(config.logstasher) if config.logstasher.enabled
end
end
+ end
+
+ def process_config(config, yml_config)
+ # Enable the logstasher logs for the current environment
+ config.enabled = yml_config[:enabled] if yml_config.key? :enabled
+ config.controller_enabled = yml_config[:controller_enabled] if yml_config.key? :controller_enabled
+ config.mailer_enabled = yml_config[:mailer_enabled] if yml_config.key? :mailer_enabled
+ config.record_enabled = yml_config[:record_enabled] if yml_config.key? :record_enabled
+ config.view_enabled = yml_config[:view_enabled] if yml_config.key? :view_enabled
+ #
+ # # This line is optional if you do not want to suppress app logs in your <environment>.log
+ config.suppress_app_log = yml_config[:suppress_app_log] if yml_config.key? :suppress_app_log
+ #
+ # # This line is optional, it allows you to set a custom value for the @source field of the log event
+ config.source = yml_config[:source].present? ? yml_config[:source] : IPSocket.getaddress(Socket.gethostname)
+
+ config.backtrace = yml_config[:backtrace] if yml_config.key? :backtrace
+ config.logger_path = yml_config[:logger_path] if yml_config.key? :logger_path
end
end