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