Sha256: d4b8e88c85156a0fb65ba016289ace8bc8df4ad364a8249f53d358abdff7d9d0

Contents?: true

Size: 1.25 KB

Versions: 3

Compression:

Stored size: 1.25 KB

Contents

require 'logger'
require 'logatron/const'
require 'logatron/basic_formatter'
require 'active_support/backtrace_cleaner'
require 'active_support/json'

module Logatron
  class << self
    def configuration=
      @configuration = configuration
    end

    def configuration
      @configuration ||= Configuration.new
    end
  end

  def self.configure
    configuration
    yield(configuration)
  end

  class Configuration
    attr_accessor :logger, :host, :level, :transformer, :app_id
    attr_reader :loggable_levels, :backtrace_cleaner

    def initialize
      @logger = Logger.new(STDOUT)
      @app_id = 'N/A'
      @transformer = proc { |x| x.to_json }
      @host = `hostname`.chomp
      @level = INFO
      level_threshold = SEVERITY_MAP[@level]
      levels = Logatron::SEVERITY_MAP.keys
      @loggable_levels = levels.select { |level| SEVERITY_MAP[level] >= level_threshold }
      bc = ActiveSupport::BacktraceCleaner.new
      bc.add_filter { |line| line.gsub(Rails.root.to_s, '') } if defined? Rails
      bc.add_silencer { |line| line =~ /gems/ }
      @backtrace_cleaner = bc
    end

    def logger=(logger)
      level = @logger.level
      @logger = logger
      @logger.level = level
      @logger.formatter = Logatron::BasicFormatter.new
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
logatron-0.7.0 lib/logatron/configuration.rb
logatron-0.6.0 lib/logatron/configuration.rb
logatron-0.5.0 lib/logatron/configuration.rb