Class: LanguageOperator::Agent::Safety::AuditLogger

Inherits:
Object
  • Object
show all
Includes:
Loggable
Defined in:
lib/language_operator/agent/safety/audit_logger.rb

Overview

Audit Logger for safety events

Logs all safety-related events (blocked requests, budget exceeded, etc.) for compliance and debugging.

Examples:

audit = AuditLogger.new
audit.log_blocked_request(reason: 'Budget exceeded', details: {...})

Instance Method Summary collapse

Methods included from Loggable

#logger

Constructor Details

#initializeAuditLogger

Returns a new instance of AuditLogger.



21
22
23
24
# File 'lib/language_operator/agent/safety/audit_logger.rb', line 21

def initialize
  @audit_log_path = ENV['AUDIT_LOG_PATH'] || '/tmp/langop-audit.jsonl'
  logger.info('Audit logger initialized', log_path: @audit_log_path)
end

Instance Method Details

#log_blocked_request(reason:, details: {}) ⇒ Object

Log a blocked request

Parameters:

  • reason (String)

    Reason for blocking

  • details (Hash) (defaults to: {})

    Additional details



30
31
32
33
34
35
36
# File 'lib/language_operator/agent/safety/audit_logger.rb', line 30

def log_blocked_request(reason:, details: {})
  log_event(
    event_type: 'blocked_request',
    reason: reason,
    details: details
  )
end

#log_budget_event(event:, details: {}) ⇒ Object

Log a budget event

Parameters:

  • event (String)

    Event description

  • details (Hash) (defaults to: {})

    Budget details



42
43
44
45
46
47
48
# File 'lib/language_operator/agent/safety/audit_logger.rb', line 42

def log_budget_event(event:, details: {})
  log_event(
    event_type: 'budget_event',
    event: event,
    details: details
  )
end

#log_content_filter_event(event:, details: {}) ⇒ Object

Log a content filter event

Parameters:

  • event (String)

    Event description

  • details (Hash) (defaults to: {})

    Filter details



66
67
68
69
70
71
72
# File 'lib/language_operator/agent/safety/audit_logger.rb', line 66

def log_content_filter_event(event:, details: {})
  log_event(
    event_type: 'content_filter_event',
    event: event,
    details: details
  )
end

#log_rate_limit_event(event:, details: {}) ⇒ Object

Log a rate limit event

Parameters:

  • event (String)

    Event description

  • details (Hash) (defaults to: {})

    Rate limit details



54
55
56
57
58
59
60
# File 'lib/language_operator/agent/safety/audit_logger.rb', line 54

def log_rate_limit_event(event:, details: {})
  log_event(
    event_type: 'rate_limit_event',
    event: event,
    details: details
  )
end