class Loga::Railtie::InitializeLogger

This service class initializes Loga with user options, framework smart options and update Rails logger with Loga

Attributes

app[R]

Public Class Methods

call(app) click to toggle source
# File lib/loga/railtie.rb, line 11
def self.call(app)
  new(app).call
end
new(app) click to toggle source
# File lib/loga/railtie.rb, line 15
def initialize(app)
  @app = app
end

Public Instance Methods

call() click to toggle source
# File lib/loga/railtie.rb, line 19
def call
  validate_user_options
  change_tempfile_as_json
  Loga.configure(user_options, rails_options)
  app.config.colorize_logging = false if Loga.configuration.structured?
  app.config.logger = Loga.logger
end

Private Instance Methods

change_tempfile_as_json() click to toggle source

Fixes encoding error when converting uploaded file to JSON

# File lib/loga/railtie.rb, line 70
def change_tempfile_as_json
  require 'loga/ext/core/tempfile'
end
device_options() click to toggle source
# File lib/loga/railtie.rb, line 40
def device_options
  Rails.env.test? ? { device: File.open('log/test.log', 'a') } : {}
end
format() click to toggle source
# File lib/loga/railtie.rb, line 48
def format
  Rails.env.production? ? :gelf : :simple
end
rails_options() click to toggle source
# File lib/loga/railtie.rb, line 31
def rails_options
  {
    format: format,
    level:  app.config.log_level,
    sync:   sync,
    tags:   app.config.log_tags || [],
  }.merge(device_options)
end
sync() click to toggle source
# File lib/loga/railtie.rb, line 52
def sync
  Rails::VERSION::MAJOR > 3 ? app.config.autoflush_log : true
end
user_options() click to toggle source
# File lib/loga/railtie.rb, line 44
def user_options
  app.config.loga
end
validate_user_options() click to toggle source
# File lib/loga/railtie.rb, line 56
def validate_user_options
  if user_options[:tags].present?
    raise Loga::ConfigurationError,
          'Configure tags with Rails config.log_tags'
  elsif user_options[:level].present?
    raise Loga::ConfigurationError,
          'Configure level with Rails config.log_level'
  elsif user_options[:filter_parameters].present?
    raise Loga::ConfigurationError,
          'Configure filter_parameters with Rails config.filter_parameters'
  end
end