Module: RackJwtAegis::DebugLogger

Included in:
Middleware, RbacManager
Defined in:
lib/rack_jwt_aegis/debug_logger.rb

Overview

Shared debug logging functionality

Provides consistent debug logging across all RackJwtAegis components with configurable log levels and automatic timestamp formatting.

Author:

  • Ken Camajalan Demanawa

Since:

  • 1.0.0

Instance Method Summary collapse

Instance Method Details

#debug_log(message, level = :info, component = nil) ⇒ Object

Log debug message if debug mode is enabled

Parameters:

  • message (String)

    the message to log

  • level (Symbol) (defaults to: :info)

    the log level (:info, :warn, :error) (default: :info)

  • component (String) (defaults to: nil)

    the component name for log prefixing (optional)

Since:

  • 1.0.0



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/rack_jwt_aegis/debug_logger.rb', line 17

def debug_log(message, level = :info, component = nil)
  return unless @config.debug_mode?

  timestamp = Time.now.strftime('%Y-%m-%d %H:%M:%S.%L')

  # Determine component name for log prefix
  component_name = component || self.class.name.split('::').last || 'RackJwtAegis'

  formatted_message = "[#{timestamp}] #{component_name}: #{message}"

  case level
  when :error, :warn
    warn formatted_message
  else
    puts formatted_message
  end
end