Module: SpringOnion::JsonLogger

Defined in:
lib/spring_onion/json_logger.rb

Class Method Summary collapse

Class Method Details

.log(sql:, explain:, warnings:, trace:) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/spring_onion/json_logger.rb', line 7

def log(sql:, explain:, warnings:, trace:)
  h = {
    sql: sql,
    explain: explain.each_with_index.map { |r, i| { line: i + 1 }.merge(r) },
    warnings: warnings.transform_keys { |i| "line #{i + 1}" },
    backtrace: trace.slice(0, SpringOnion.trace_len),
  }

  line = if SpringOnion.json_pretty
           JSON.pretty_generate(h)
         else
           JSON.dump(h)
         end

  line = CodeRay.scan(line, :json).terminal if SpringOnion.color
  SpringOnion.logger.info(line)
end