Module: Aven::Loggable

Included in:
AppRecord, AppRecordSchema
Defined in:
app/models/aven/loggable.rb

Instance Method Summary collapse

Instance Method Details

#log!(message:, level: "info", metadata: nil, **extra) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'app/models/aven/loggable.rb', line 3

def log!(message:, level: "info", metadata: nil, **extra)
  attrs = {
    message:,
    level:,
    metadata:  || {}
  }

  ws = is_a?(Aven::Workspace) ? self : workspace
  attrs[:workspace] = ws

  attrs[:run_id] = extra[:run_id] if extra.key?(:run_id)
  attrs[:state] = extra[:state] if extra.key?(:state)
  attrs[:state_machine] = extra[:state_machine] if extra.key?(:state_machine)

  logs.create!(attrs)
end