Class: Rsodx::LoggerAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/rsodx/logger_adapter.rb

Instance Method Summary collapse

Constructor Details

#initialize(target) ⇒ LoggerAdapter

Returns a new instance of LoggerAdapter.



3
4
5
# File 'lib/rsodx/logger_adapter.rb', line 3

def initialize(target)
  @target = target
end

Instance Method Details

#log_format(log) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/rsodx/logger_adapter.rb', line 20

def log_format(log)
  {
    app: log.appname,
    timestamp: log.timestamp,
    level: log.level,
    code: log.code,
    message: log.message,
    context: (log.context.empty? ? nil : log.context),
    backtrace: log.backtrace
  }.compact
end

#puts(log) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/rsodx/logger_adapter.rb', line 7

def puts(log)
  case @target
  when IO
    @target.puts(log_format(log).to_json)
  when ::Logger
    @target.send(log.level, log_format(log).to_json)
  when Syslog::Logger
    @target.send(log.level, "[#{log.appname}] [#{log.code}] #{log.message} #{log.context}")
  else
    raise "Unsupported log target: #{@target.class}"
  end
end