Class: LangGraphRB::Observers::LoggerObserver

Inherits:
BaseObserver
  • Object
show all
Defined in:
lib/langgraph_rb/observers/logger.rb

Overview

File and stdout logging observer

Instance Method Summary collapse

Methods inherited from BaseObserver

#on_checkpoint_saved, #on_command_processed, #on_state_change, #shutdown

Constructor Details

#initialize(logger: nil, level: :info, format: :text) ⇒ LoggerObserver

Returns a new instance of LoggerObserver.



7
8
9
10
11
12
# File 'lib/langgraph_rb/observers/logger.rb', line 7

def initialize(logger: nil, level: :info, format: :text)
  @logger = logger || Logger.new($stdout)
  @level = level
  @format = format
  @logger.level = Logger.const_get(level.to_s.upcase)
end

Instance Method Details

#on_graph_end(event) ⇒ Object



18
19
20
# File 'lib/langgraph_rb/observers/logger.rb', line 18

def on_graph_end(event)
  log(:info, "Graph execution completed", event.to_h)
end

#on_graph_start(event) ⇒ Object



14
15
16
# File 'lib/langgraph_rb/observers/logger.rb', line 14

def on_graph_start(event)
  log(:info, "Graph execution started", event.to_h)
end

#on_interrupt(event) ⇒ Object



39
40
41
# File 'lib/langgraph_rb/observers/logger.rb', line 39

def on_interrupt(event)
  log(:warn, "Execution interrupted: #{event[:message]}", event)
end

#on_node_end(event) ⇒ Object



26
27
28
29
# File 'lib/langgraph_rb/observers/logger.rb', line 26

def on_node_end(event)
  duration_ms = event.duration ? (event.duration * 1000).round(2) : 'unknown'
  log(:info, "Node completed: #{event.node_name} (#{duration_ms}ms)", event.to_h)
end

#on_node_error(event) ⇒ Object



31
32
33
# File 'lib/langgraph_rb/observers/logger.rb', line 31

def on_node_error(event)
  log(:error, "Node error: #{event.node_name} - #{event.error&.message}", event.to_h)
end

#on_node_start(event) ⇒ Object



22
23
24
# File 'lib/langgraph_rb/observers/logger.rb', line 22

def on_node_start(event)
  log(:debug, "Node execution started: #{event.node_name}", event.to_h)
end

#on_step_complete(event) ⇒ Object



35
36
37
# File 'lib/langgraph_rb/observers/logger.rb', line 35

def on_step_complete(event)
  log(:debug, "Step #{event.step_number} completed with #{event.completed_nodes.length} nodes", event.to_h)
end