Class: DecisionAgent::Audit::LoggerAdapter

Inherits:
Adapter
  • Object
show all
Defined in:
lib/decision_agent/audit/logger_adapter.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(logger: nil, level: Logger::INFO) ⇒ LoggerAdapter

Returns a new instance of LoggerAdapter.



11
12
13
14
# File 'lib/decision_agent/audit/logger_adapter.rb', line 11

def initialize(logger: nil, level: Logger::INFO)
  @logger = logger || Logger.new($stdout)
  @logger.level = level
end

Instance Attribute Details

#loggerObject (readonly)

Returns the value of attribute logger.



9
10
11
# File 'lib/decision_agent/audit/logger_adapter.rb', line 9

def logger
  @logger
end

Instance Method Details

#record(decision, context) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/decision_agent/audit/logger_adapter.rb', line 16

def record(decision, context)
  log_entry = {
    timestamp: decision.audit_payload[:timestamp],
    decision: decision.decision,
    confidence: decision.confidence,
    context: context.to_h,
    audit_hash: decision.audit_payload[:deterministic_hash]
  }

  @logger.info(JSON.generate(log_entry))
end