class Kiev::Config

Constants

DEFAULT_HTTP_PROPAGATED_FIELDS
DEFAULT_IGNORED_RACK_EXCEPTIONS
DEFAULT_LOG_REQUEST_BODY_CONDITION
DEFAULT_LOG_REQUEST_CONDITION
DEFAULT_LOG_REQUEST_ERROR_CONDITION
DEFAULT_LOG_REQUEST_REGEXP
DEFAULT_LOG_RESPONSE_BODY_CONDITION
DEFAULT_LOG_RESPONSE_BODY_REGEXP
DEFAULT_PRE_RACK_HOOK
FILTERED_PARAMS
IGNORED_PARAMS

Attributes

all_http_propagated_fields[R]
all_jobs_propagated_fields[R]
app[RW]
development_mode[R]
disable_default_logger[RW]
filtered_params[RW]
http_propagated_fields[R]
ignored_params[RW]
ignored_rack_exceptions[RW]
jobs_propagated_fields[R]
log_request_body_condition[RW]
log_request_condition[RW]
log_request_error_condition[RW]
log_response_body_condition[RW]
logger[R]
persistent_log_fields[RW]
pre_rack_hook[RW]

Public Class Methods

new() click to toggle source
# File lib/kiev/config.rb, line 97
def initialize
  @log_request_condition = DEFAULT_LOG_REQUEST_CONDITION
  @log_request_error_condition = DEFAULT_LOG_REQUEST_ERROR_CONDITION
  @log_response_body_condition = DEFAULT_LOG_RESPONSE_BODY_CONDITION
  @log_request_body_condition = DEFAULT_LOG_REQUEST_BODY_CONDITION
  @filtered_params = FILTERED_PARAMS
  @ignored_params = IGNORED_PARAMS
  @disable_default_logger = true
  @development_mode = false
  @ignored_rack_exceptions = DEFAULT_IGNORED_RACK_EXCEPTIONS.dup
  @logger = Kiev::Logger.new(STDOUT)
  @log_level = nil
  @persistent_log_fields = []
  @pre_rack_hook = DEFAULT_PRE_RACK_HOOK
  self.propagated_fields = {}
  update_logger_settings
end

Public Instance Methods

development_mode=(value) click to toggle source
# File lib/kiev/config.rb, line 145
def development_mode=(value)
  @development_mode = value
  update_logger_settings
end
http_propagated_fields=(value) click to toggle source
# File lib/kiev/config.rb, line 115
def http_propagated_fields=(value)
  @all_http_propagated_fields = DEFAULT_HTTP_PROPAGATED_FIELDS.merge(value)
  @http_propagated_fields = @all_http_propagated_fields.dup
  DEFAULT_HTTP_PROPAGATED_FIELDS.keys.each do |key|
    @http_propagated_fields.delete(key)
  end
  @http_propagated_fields.freeze
end
jobs_propagated_fields=(value) click to toggle source
# File lib/kiev/config.rb, line 124
def jobs_propagated_fields=(value)
  @all_jobs_propagated_fields = (DEFAULT_HTTP_PROPAGATED_FIELDS.keys + value).uniq.freeze
  @jobs_propagated_fields = (@all_jobs_propagated_fields - DEFAULT_HTTP_PROPAGATED_FIELDS.keys).freeze
end
log_level=(value) click to toggle source
# File lib/kiev/config.rb, line 140
def log_level=(value)
  @log_level = value
  update_logger_settings
end
log_path=(value) click to toggle source
# File lib/kiev/config.rb, line 135
def log_path=(value)
  logger.path = value
  update_logger_settings
end
propagated_fields=(value) click to toggle source

shortcut

# File lib/kiev/config.rb, line 130
def propagated_fields=(value)
  self.http_propagated_fields = value
  self.jobs_propagated_fields = value.keys
end

Private Instance Methods

default_log_level() click to toggle source
# File lib/kiev/config.rb, line 161
def default_log_level
  development_mode ? ::Logger::DEBUG : ::Logger::INFO
end
formatter() click to toggle source
# File lib/kiev/config.rb, line 157
def formatter
  development_mode ? Logger::DEVELOPMENT_FORMATTER : Logger::FORMATTER
end
update_logger_settings() click to toggle source
# File lib/kiev/config.rb, line 152
def update_logger_settings
  @logger.formatter = formatter
  @logger.level = @log_level || default_log_level
end