Class: Ollama::Middleware::Logger

Inherits:
Ollama::Middleware show all
Defined in:
lib/ollama/middleware/logger.rb

Overview

Logger middleware - logs request/response information

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Ollama::Middleware

#around

Constructor Details

#initialize(logger: nil, level: :info, formatter: nil) ⇒ Logger

Returns a new instance of Logger.



11
12
13
14
15
16
# File 'lib/ollama/middleware/logger.rb', line 11

def initialize(logger: nil, level: :info, formatter: nil)
  super()
  @logger = logger || default_logger
  @level = level
  @formatter = formatter || method(:default_format)
end

Instance Attribute Details

#formatterObject (readonly)

Returns the value of attribute formatter.



9
10
11
# File 'lib/ollama/middleware/logger.rb', line 9

def formatter
  @formatter
end

#levelObject (readonly)

Returns the value of attribute level.



9
10
11
# File 'lib/ollama/middleware/logger.rb', line 9

def level
  @level
end

#loggerObject (readonly)

Returns the value of attribute logger.



9
10
11
# File 'lib/ollama/middleware/logger.rb', line 9

def logger
  @logger
end

Instance Method Details

#after_response(response, env) ⇒ Object



28
29
30
31
32
33
34
35
36
37
# File 'lib/ollama/middleware/logger.rb', line 28

def after_response(response, env)
  duration = env[:duration_ms]
  log(:info, "← Response", {
        endpoint: env[:request]&.endpoint,
        status: response.status,
        duration_ms: duration,
        cached: env[:cache_hit] || false
      })
  response
end

#before_request(request, _env) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/ollama/middleware/logger.rb', line 18

def before_request(request, _env)
  log(:info, "→ Request", {
        endpoint: request.endpoint,
        model: request.model,
        streaming: request.streaming?,
        metadata: request.
      })
  request
end

#on_error(error, env) ⇒ Object



39
40
41
42
43
44
45
46
# File 'lib/ollama/middleware/logger.rb', line 39

def on_error(error, env)
  log(:error, "✗ Error", {
        endpoint: env[:request]&.endpoint,
        error: error.class.name,
        message: error.message
      })
  nil
end

#on_stream_chunk(chunk, env) ⇒ Object



48
49
50
51
52
53
# File 'lib/ollama/middleware/logger.rb', line 48

def on_stream_chunk(chunk, env)
  log(:debug, "∼ Stream", {
        endpoint: env[:request]&.endpoint,
        chunk_size: chunk.to_s.bytesize
      })
end