Module: Errsight

Defined in:
lib/errsight.rb,
lib/errsight/client.rb,
lib/errsight/logger.rb,
lib/errsight/railtie.rb,
lib/errsight/version.rb,
lib/errsight/configuration.rb

Defined Under Namespace

Classes: Client, Configuration, ConfigurationError, Error, Logger, Railtie

Constant Summary collapse

VERSION =
"0.1.1"

Class Method Summary collapse

Class Method Details

.capture_exception(exception, metadata: {}) ⇒ Object



40
41
42
43
44
45
46
47
48
49
# File 'lib/errsight.rb', line 40

def capture_exception(exception, metadata: {})
  return unless exception.is_a?(Exception)

  log(
    level: :error,
    message: "#{exception.class}: #{exception.message}",
    backtrace: exception.backtrace&.join("\n"),
    metadata: .merge(exception_class: exception.class.to_s)
  )
end

.clientObject



22
23
24
# File 'lib/errsight.rb', line 22

def client
  @client ||= Client.new(configuration)
end

.configurationObject



12
13
14
# File 'lib/errsight.rb', line 12

def configuration
  @configuration ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Yields:



16
17
18
19
20
# File 'lib/errsight.rb', line 16

def configure
  yield configuration
  configuration.validate!
  configuration
end

.log(level:, message:, backtrace: nil, environment: nil, metadata: {}, occurred_at: nil) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/errsight.rb', line 26

def log(level:, message:, backtrace: nil, environment: nil, metadata: {}, occurred_at: nil)
  return unless configuration.enabled?
  return if level_below_threshold?(level)

  client.enqueue(
    level: level.to_s,
    message: message.to_s,
    backtrace: backtrace,
    environment: environment || configuration.environment,
    metadata: ,
    occurred_at: (occurred_at || Time.now).iso8601(3)
  )
end