module Logged
logged
Constants
- CONFIG_KEYS
special keys which not represent a component
- VERSION
Version
Public Class Methods
components()
click to toggle source
configured components
# File lib/logged.rb, line 146 def components config.keys - CONFIG_KEYS end
custom_data(conf, event, data)
click to toggle source
run data callbacks
# File lib/logged.rb, line 138 def custom_data(conf, event, data) return data unless conf.enabled return data unless conf.custom_data.respond_to?(:call) conf.custom_data.call(event, data) end
default_formatter()
click to toggle source
default log formatter
# File lib/logged.rb, line 42 def default_formatter config.formatter || (@default_formatter ||= Logged::Formatter::KeyValue.new) end
default_level()
click to toggle source
default log level
# File lib/logged.rb, line 37 def default_level config.level || :info end
enable_component(component)
click to toggle source
configure and enable component
# File lib/logged.rb, line 108 def enable_component(component) loggers = loggers_for(component) return unless loggers.any? loggers.each do |logger, options| level = options[:level] || config[component].level || default_level logger.level = level_to_const(level) if logger.respond_to?(:'level=') end # only attach subscribers with loggers @subscribers[component].each do |subscriber| subscriber.attach_to(component) end end
ignore?(conf, event)
click to toggle source
check if event should be ignored
# File lib/logged.rb, line 126 def ignore?(conf, event) return false unless event return false unless conf.enabled return true if !event.is_a?(String) && conf.ignore.is_a?(Array) && conf.ignore.include?(event.name) return conf.custom_ignore.call(event) if conf.custom_ignore.respond_to?(:call) false end
load_logger(name, conf)
click to toggle source
load logger from configuration
# File lib/logged.rb, line 92 def load_logger(name, conf) return [nil, nil] unless conf.enabled options = conf.dup options[:name] = name logger = options.delete(:logger) logger = Rails.logger if logger == :rails return [nil, nil] unless logger [logger, options] end
logger_by_component(component)
click to toggle source
logger wrapper for component
# File lib/logged.rb, line 47 def logger_by_component(component) return nil unless config.enabled key = "component_#{component}" return @component_loggers[key] if @component_loggers.key?(key) loggers = loggers_for(component) if loggers.blank? @component_loggers[key] = nil return nil end formatter = config[component].formatter || default_formatter @component_loggers[key] = Logger.new(loggers, component, formatter) end
Also aliased as: []
loggers_for(component)
click to toggle source
loggers for component
# File lib/logged.rb, line 69 def loggers_for(component) loggers_from_config(config) .merge(loggers_from_config(config[component])) end
loggers_from_config(conf)
click to toggle source
loggers from config level
# File lib/logged.rb, line 75 def loggers_from_config(conf) loggers = {} return loggers unless conf.enabled conf.loggers.each do |name, c| logger, options = load_logger(name, c) next unless logger && options loggers[logger] = options end loggers end
request_env()
click to toggle source
rack request environment
# File lib/logged.rb, line 151 def request_env Thread.current[:logged_request_env] end
setup(app)
click to toggle source
setup logged
# File lib/logged.rb, line 27 def setup(app) self.app = app self.config = app.config.logged app.config.middleware.insert_after ::Rails::Rack::Logger, Logged::Rack::Logger setup_components end
Private Class Methods
init()
click to toggle source
# File lib/logged.rb, line 167 def init @subscribers ||= Hash.new { |hash, key| hash[key] = [] } @component_loggers = {} require_rails_subscribers end
setup_components()
click to toggle source
# File lib/logged.rb, line 157 def setup_components components.each do |component| remove_rails_subscriber(component) if config[component].disable_rails_logging next unless config[component].enabled enable_component(component) end end