class ReeLogger::MultiLogger

def log_event(level, message, parameters, exception, log_args)

def log_event(level, message, parameters, exception, log_args)
  return if @silenced if ![:error, :fatal].include?(level)
  if log_args
    begin
      method_binding = binding.of_caller(2)
      method_name = method_binding.eval('__method__')
      obj = method_binding.eval('self')
      args = {}
      obj.method(method_name).parameters.each do |_, name|
        args[name] = method_binding.local_variable_get(name)
      end
      args = transform_values(to_hash(args)) do |k, v|
        if @filter_words.any? { k.to_s.include?(_1) }
          'FILTERED'
        else
          v
        end
      end
      parameters[:method] = {}
      parameters[:method][:name] = method_name
      parameters[:method][:args] = args
    rescue
    end
  end
  parameters = transform_values(parameters) do |k, v|
    if @filter_words.any? { k.to_s.include?(_1) }
      'FILTERED'
    else
      v
    end
  end
  event = LogEvent.new(level, message, exception, parameters)
  appenders.each do |appender|
    if higher_or_equal_level?(event.level, appender.level)
      begin
        appender.append(event, @progname)
      rescue
        # fail silently if logger is not working by some reason
      end
    end
  end
end