Skip to content

Severity

provide.foundation.logger.otlp.severity

OTLP severity level mapping.

Maps between string log levels and OTLP severity numbers according to the OpenTelemetry specification.

Reference: https://opentelemetry.io/docs/specs/otel/logs/data-model/#field-severitynumber

Functions

map_level_to_severity

map_level_to_severity(level: str) -> int

Map log level string to OTLP severity number.

Parameters:

Name Type Description Default
level str

Log level string (e.g., "INFO", "ERROR", "WARN")

required

Returns:

Type Description
int

OTLP severity number (1-24)

int

Falls back to 9 (INFO) for unknown levels

Examples:

>>> map_level_to_severity("INFO")
9
>>> map_level_to_severity("ERROR")
17
>>> map_level_to_severity("warning")
13
>>> map_level_to_severity("unknown")
9
Source code in provide/foundation/logger/otlp/severity.py
def map_level_to_severity(level: str) -> int:
    """Map log level string to OTLP severity number.

    Args:
        level: Log level string (e.g., "INFO", "ERROR", "WARN")

    Returns:
        OTLP severity number (1-24)
        Falls back to 9 (INFO) for unknown levels

    Examples:
        >>> map_level_to_severity("INFO")
        9
        >>> map_level_to_severity("ERROR")
        17
        >>> map_level_to_severity("warning")
        13
        >>> map_level_to_severity("unknown")
        9
    """
    return _LEVEL_TO_SEVERITY.get(level.upper(), 9)

map_severity_to_level

map_severity_to_level(severity: int) -> str

Map OTLP severity number to log level string.

Parameters:

Name Type Description Default
severity int

OTLP severity number (1-24)

required

Returns:

Type Description
str

Log level string (TRACE, DEBUG, INFO, WARN, ERROR, FATAL)

str

Falls back to "INFO" for unknown severity numbers

Examples:

>>> map_severity_to_level(9)
'INFO'
>>> map_severity_to_level(17)
'ERROR'
>>> map_severity_to_level(100)
'INFO'
Source code in provide/foundation/logger/otlp/severity.py
def map_severity_to_level(severity: int) -> str:
    """Map OTLP severity number to log level string.

    Args:
        severity: OTLP severity number (1-24)

    Returns:
        Log level string (TRACE, DEBUG, INFO, WARN, ERROR, FATAL)
        Falls back to "INFO" for unknown severity numbers

    Examples:
        >>> map_severity_to_level(9)
        'INFO'
        >>> map_severity_to_level(17)
        'ERROR'
        >>> map_severity_to_level(100)
        'INFO'
    """
    return _SEVERITY_TO_LEVEL.get(severity, "INFO")