Module: Parse::LiveQuery::Logging

Defined in:
lib/parse/live_query/logging.rb

Overview

Structured logging module for LiveQuery.

Provides leveled logging with context support. Disabled by default.

Examples:

Enable logging

Parse::LiveQuery::Logging.enabled = true
Parse::LiveQuery::Logging.log_level = :debug

Use custom logger

Parse::LiveQuery::Logging.logger = Rails.logger

Constant Summary collapse

LEVELS =

Log levels in order of verbosity

[:debug, :info, :warn, :error].freeze

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.enabledBoolean

Returns whether logging is enabled.

Returns:

  • (Boolean)

    whether logging is enabled



25
26
27
# File 'lib/parse/live_query/logging.rb', line 25

def enabled
  @enabled
end

.log_levelSymbol

Returns current log level (:debug, :info, :warn, :error).

Returns:

  • (Symbol)

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



31
32
33
# File 'lib/parse/live_query/logging.rb', line 31

def log_level
  @log_level
end

.loggerLogger?

Returns custom logger instance.

Returns:

  • (Logger, nil)

    custom logger instance



28
29
30
# File 'lib/parse/live_query/logging.rb', line 28

def logger
  @logger
end

Class Method Details

.current_loggerLogger

Get the current logger (custom or default)

Returns:

  • (Logger)


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

def current_logger
  logger || default_logger
end

.debug(message, **context) ⇒ Object

Log a debug message

Parameters:

  • message (String)

    the message

  • context (Hash)

    optional context data



64
65
66
# File 'lib/parse/live_query/logging.rb', line 64

def debug(message, **context)
  log(:debug, message, context)
end

.default_loggerLogger

Get or create the default logger

Returns:

  • (Logger)


44
45
46
47
48
49
50
51
52
53
# File 'lib/parse/live_query/logging.rb', line 44

def default_logger
  @default_logger ||= begin
      l = ::Logger.new($stdout)
      l.progname = "Parse::LiveQuery"
      l.formatter = proc do |severity, datetime, progname, msg|
        "[#{datetime.strftime("%Y-%m-%d %H:%M:%S")}] #{severity} -- #{progname}: #{msg}\n"
      end
      l
    end
end

.error(message, **context) ⇒ Object

Log an error message

Parameters:

  • message (String)

    the message

  • context (Hash)

    optional context data



85
86
87
# File 'lib/parse/live_query/logging.rb', line 85

def error(message, **context)
  log(:error, message, context)
end

.info(message, **context) ⇒ Object

Log an info message

Parameters:

  • message (String)

    the message

  • context (Hash)

    optional context data



71
72
73
# File 'lib/parse/live_query/logging.rb', line 71

def info(message, **context)
  log(:info, message, context)
end

.reset!Object

Reset logging configuration to defaults



90
91
92
93
94
95
# File 'lib/parse/live_query/logging.rb', line 90

def reset!
  @enabled = false
  @logger = nil
  @log_level = :info
  @default_logger = nil
end

.warn(message, **context) ⇒ Object

Log a warning message

Parameters:

  • message (String)

    the message

  • context (Hash)

    optional context data



78
79
80
# File 'lib/parse/live_query/logging.rb', line 78

def warn(message, **context)
  log(:warn, message, context)
end