Class: Applicaster::Logger::Railtie
- Inherits:
-
Rails::Railtie
- Object
- Rails::Railtie
- Applicaster::Logger::Railtie
- Defined in:
- lib/applicaster/logger/railtie.rb
Constant Summary collapse
- DEFAULT_APP_NAME =
proc { Rails.application.class.parent.to_s.underscore }
- INTERNAL_PARAMS =
%w(controller action format only_path)
Class Method Summary collapse
Instance Method Summary collapse
- #default_fields ⇒ Object
- #new_logger(facility) ⇒ Object
- #setup_logger(app) ⇒ Object
- #setup_lograge(app) ⇒ Object
Class Method Details
.uri_logstash_config(uri) ⇒ Object
38 39 40 41 42 43 44 |
# File 'lib/applicaster/logger/railtie.rb', line 38 def self.uri_logstash_config(uri) parsed = ::URI.parse(uri) # params parsing can be removed if this is merged: # https://github.com/dwbutler/logstash-logger/pull/148 params = Hash[CGI.parse(parsed.query.to_s).map {|k,v| [k,v.first]}] { uri: uri, buffer_max_items: Integer(params["buffer_max_items"] || 1000)} end |
Instance Method Details
#default_fields ⇒ Object
76 77 78 79 80 81 82 |
# File 'lib/applicaster/logger/railtie.rb', line 76 def default_fields config = ::Rails.application.config.applicaster_logger { application: config.application_name, environment: Rails.env.to_s }.merge(config.logzio_token ? { token: config.logzio_token } : {}) end |
#new_logger(facility) ⇒ Object
65 66 67 68 69 70 71 72 73 74 |
# File 'lib/applicaster/logger/railtie.rb', line 65 def new_logger(facility) config = ::Rails.application.config.applicaster_logger LogStashLogger.new(config.logstash_config).tap do |logger| logger.level = config.level logger.formatter = Applicaster::Logger::Formatter.new( default_fields.merge({ facility: facility }) ) end end |
#setup_logger(app) ⇒ Object
57 58 59 60 61 62 63 |
# File 'lib/applicaster/logger/railtie.rb', line 57 def setup_logger(app) config = app.config.applicaster_logger app.config.logger = new_logger("rails_logger") Applicaster::Logger::Sidekiq.setup(new_logger("sidekiq")) if defined?(::Sidekiq) Sidetiq.logger = new_logger("sidetiq") if defined?(Sidetiq) Delayed::Worker.logger = new_logger("delayed") if defined?(Delayed) end |
#setup_lograge(app) ⇒ Object
46 47 48 49 50 51 52 53 54 55 |
# File 'lib/applicaster/logger/railtie.rb', line 46 def setup_lograge(app) app.config.lograge.enabled = true app.config.lograge.formatter = Applicaster::Logger::Lograge::Formatter.new app.config.lograge. = lambda do |event| { params: event.payload[:params].except(*INTERNAL_PARAMS).inspect, custom_params: event.payload[:custom_params], } end end |