Class: ClaudeHooks::Logger

Inherits:
Object
  • Object
show all
Defined in:
lib/claude_hooks/logger.rb

Overview

Session-based logger for Claude Code hooks

Instance Method Summary collapse

Constructor Details

#initialize(session_id, source) ⇒ Logger

Returns a new instance of Logger.



9
10
11
12
# File 'lib/claude_hooks/logger.rb', line 9

def initialize(session_id, source)
  @session_id = session_id
  @source = source
end

Instance Method Details

#log(message, level: :info) ⇒ Object

Log to session-specific file Usage:

log "Simple message"
log "Debug info", level: :debug


18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/claude_hooks/logger.rb', line 18

def log(message, level: :info)
  timestamp = Time.now.strftime('%Y-%m-%d %H:%M:%S')
  class_prefix = "[#{timestamp}] [#{level.upcase}] [#{@source}]"

  # For multiline strings, prepend a newline for better formatting
  if message.include?("\n")
    log_entry = "#{class_prefix}\n#{message}"
  else
    log_entry = "#{class_prefix} #{message}"
  end

  begin
    write_to_session_log(log_entry)
  rescue => e
    # Fallback to STDERR if file logging fails
    STDERR.puts log_entry
    STDERR.puts "Warning: Failed to write to session log: #{e.message}"
  end
end