Sha256: 966e13e169709b2ee2c684e29e5637054e06176a42e2e190e591f91f82315b85
Contents?: true
Size: 1.15 KB
Versions: 9
Compression:
Stored size: 1.15 KB
Contents
# frozen_string_literal: true require 'logger' require 'yaml' require 'singleton' require 'active_support/inflector' require 'proxes/loggers/elasticsearch' # ProxES::Services::Logger.instance module ProxES module Services class Logger include Singleton CONFIG = './config/logger.yml' attr_reader :loggers def initialize @loggers = [] config.each do |values| klass = values['class'].constantize opts = values['options'] || nil logger = klass.new(opts) if values['level'] logger.level = klass.const_get(values['level'].to_sym) end @loggers << logger end end def method_missing(method, *args, &block) loggers.each { |logger| logger.send(method, *args, &block) } end def respond_to_missing?(method, include_private = false) loggers.any? { |logger| logger.respond_to?(method) } end private def config @config ||= File.exist?(CONFIG) ? YAML.load_file(CONFIG) : default end def default [{ 'name' => 'default', 'class' => 'Logger' }] end end end end
Version data entries
9 entries across 9 versions & 1 rubygems