Class: ClaudeMemory::Logging::Logger

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

Overview

Structured JSON logger for ClaudeMemory operations. Outputs machine-readable JSON log entries to a configurable stream.

Log levels: DEBUG (0), INFO (1), WARN (2), ERROR (3) Configure via CLAUDE_MEMORY_LOG_LEVEL env var (default: WARN)

Examples:

Basic usage

logger = ClaudeMemory::Logging::Logger.new
logger.info("ingest", message: "Ingested 1024 bytes", content_id: 42)

With custom output

logger = ClaudeMemory::Logging::Logger.new(output: StringIO.new, level: :debug)
logger.debug("recall", message: "Query executed", query: "test", results: 5)

Constant Summary collapse

DEBUG =
0
INFO =
1
WARN =
2
ERROR =
3
LEVELS =
{debug: DEBUG, info: INFO, warn: WARN, error: ERROR}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(output: $stderr, level: nil) ⇒ Logger

Returns a new instance of Logger.

Parameters:

  • output (IO) (defaults to: $stderr)

    output stream for log entries (default: $stderr)

  • level (Symbol, String) (defaults to: nil)

    minimum log level (default: from env or :warn)



32
33
34
35
# File 'lib/claude_memory/logging/logger.rb', line 32

def initialize(output: $stderr, level: nil)
  @output = output
  @level = resolve_level(level)
end

Instance Attribute Details

#levelObject (readonly)

Returns the value of attribute level.



28
29
30
# File 'lib/claude_memory/logging/logger.rb', line 28

def level
  @level
end

Instance Method Details

#debug(component, **fields) ⇒ Object



37
38
39
# File 'lib/claude_memory/logging/logger.rb', line 37

def debug(component, **fields)
  log(:debug, component, **fields)
end

#debug?Boolean

Returns:

  • (Boolean)


53
54
55
# File 'lib/claude_memory/logging/logger.rb', line 53

def debug?
  @level <= DEBUG
end

#error(component, **fields) ⇒ Object



49
50
51
# File 'lib/claude_memory/logging/logger.rb', line 49

def error(component, **fields)
  log(:error, component, **fields)
end

#info(component, **fields) ⇒ Object



41
42
43
# File 'lib/claude_memory/logging/logger.rb', line 41

def info(component, **fields)
  log(:info, component, **fields)
end

#info?Boolean

Returns:

  • (Boolean)


57
58
59
# File 'lib/claude_memory/logging/logger.rb', line 57

def info?
  @level <= INFO
end

#warn(component, **fields) ⇒ Object



45
46
47
# File 'lib/claude_memory/logging/logger.rb', line 45

def warn(component, **fields)
  log(:warn, component, **fields)
end