Module: KindeSdk::Logging

Overview

Shared logging module for consistent logging across all SDK components. Supports Rails logger, custom logger, or falls back to stdout/stderr.

Can be used as:

  • Instance methods via include KindeSdk::Logging
  • Class methods via include KindeSdk::Logging inside class << self
  • Direct calls via KindeSdk::Logging.log_error("message")

Examples:

Using in a class (instance methods)

class MyClass
  include KindeSdk::Logging

  def my_method
    log_info("Starting operation")
    log_error("Something went wrong")
  end
end

Using for class methods

class MyClass
  class << self
    include KindeSdk::Logging

    def my_class_method
      log_error("Class-level error")
    end
  end
end

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.resolve_loggerLogger?

Resolve the appropriate logger instance

Returns:

  • (Logger, nil)

    The logger to use, or nil if none available



89
90
91
92
93
# File 'lib/kinde_sdk/logging.rb', line 89

def resolve_logger
  if defined?(Rails) && Rails.respond_to?(:logger) && Rails.logger
    Rails.logger
  end
end

.write_log(level, message) ⇒ Object

Write a log message at the specified level Tries multiple logger sources in order of preference:

  1. Rails.logger (if Rails is defined)
  2. Fallback to $stderr/$stdout based on level

Parameters:

  • level (Symbol)

    The log level (:error, :warn, :info, :debug)

  • message (String)

    The message to log



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/kinde_sdk/logging.rb', line 69

def write_log(level, message)
  formatted_message = "[KindeSdk] #{message}"

  logger_instance = resolve_logger
  if logger_instance&.respond_to?(level)
    logger_instance.public_send(level, formatted_message)
  else
    # Fallback based on level
    case level
    when :error, :warn
      $stderr.puts formatted_message
    when :info, :debug
      $stdout.puts formatted_message if ENV['KINDE_DEBUG']
    end
  end
end

Instance Method Details

#log_debug(message) ⇒ Object

Log a debug message

Parameters:

  • message (String)

    The message to log



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

def log_debug(message)
  Logging.write_log(:debug, message)
end

#log_error(message) ⇒ Object

Log an error message

Parameters:

  • message (String)

    The message to log



36
37
38
# File 'lib/kinde_sdk/logging.rb', line 36

def log_error(message)
  Logging.write_log(:error, message)
end

#log_info(message) ⇒ Object

Log an info message

Parameters:

  • message (String)

    The message to log



50
51
52
# File 'lib/kinde_sdk/logging.rb', line 50

def log_info(message)
  Logging.write_log(:info, message)
end

#log_warning(message) ⇒ Object

Log a warning message

Parameters:

  • message (String)

    The message to log



43
44
45
# File 'lib/kinde_sdk/logging.rb', line 43

def log_warning(message)
  Logging.write_log(:warn, message)
end