Module: PostHog::Rails::Logs::Severity Private

Defined in:
lib/posthog/rails/logs/severity.rb

Overview

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

Maps Ruby ‘Logger` severities to OpenTelemetry log severity numbers and text.

OpenTelemetry defines severity ranges (DEBUG=5-8, INFO=9-12, WARN=13-16, ERROR=17-20, FATAL=21-24); we map each Ruby level to the base of its range.

Constant Summary collapse

NAMES =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

{
  ::Logger::DEBUG => :debug,
  ::Logger::INFO => :info,
  ::Logger::WARN => :warn,
  ::Logger::ERROR => :error,
  ::Logger::FATAL => :fatal,
  ::Logger::UNKNOWN => :info
}.freeze
OTEL =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

{
  debug: [5, 'DEBUG'],
  info: [9, 'INFO'],
  warn: [13, 'WARN'],
  error: [17, 'ERROR'],
  fatal: [21, 'FATAL']
}.freeze

Class Method Summary collapse

Class Method Details

.for_name(name) ⇒ Array(Integer, String)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns OpenTelemetry severity number and text; unrecognized names fall back to INFO.

Parameters:

  • name (Symbol, String, nil)

    A severity name such as :warn.

Returns:

  • (Array(Integer, String))

    OpenTelemetry severity number and text; unrecognized names fall back to INFO.



26
27
28
# File 'lib/posthog/rails/logs/severity.rb', line 26

def for_name(name)
  OTEL.fetch(name.to_s.downcase.to_sym, OTEL[:info])
end

.name_for(severity) ⇒ Symbol

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns The severity name (:debug, :info, :warn, :error, :fatal).

Parameters:

  • severity (Integer, nil)

    A Ruby ‘Logger` severity constant.

Returns:

  • (Symbol)

    The severity name (:debug, :info, :warn, :error, :fatal).



19
20
21
# File 'lib/posthog/rails/logs/severity.rb', line 19

def name_for(severity)
  NAMES.fetch(severity, :info)
end