Skip to content

[Question] Loguru handler with Opentelemetry: Invalid type dict for attribute 'extra' value. Expected one of ['bool', 'str', 'bytes', 'int', 'float'] or a sequence of those types (hashtag1063) #10

Description

@vikramsubramanian

When using opentelemetry-collter to collect logs, loguru will throw a warning like this: Invalid type dict for attribute 'extra' value. Expected one of ['bool', 'str', 'bytes', 'int' , 'float'] or a sequence of those types

hashtaghashtag my code:

import logging

from loguru import logger
from opentelemetry import trace
from opentelemetry._logs import set_logger_provider
from opentelemetry.exporter.otlp.proto.grpc._log_exporter import (
    OTLPLogExporter,
)
from opentelemetry.sdk._logs import LoggerProvider, LoggingHandler
from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
from opentelemetry.sdk.resources import Resource
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import (
    BatchSpanProcessor,
    ConsoleSpanExporter,
)

if __name__ == '__main__':
    trace.set_tracer_provider(TracerProvider())
    trace.get_tracer_provider().add_span_processor(
        BatchSpanProcessor(ConsoleSpanExporter())
    )

    logger_provider = LoggerProvider(
        resource=Resource.create(
            {
                "service.name": "shoppingcart",
                "service.instance.id": "instance-12",
            }
        ),
    )
    set_logger_provider(logger_provider)

    exporter = OTLPLogExporter(insecure=True)
    logger_provider.add_log_record_processor(BatchLogRecordProcessor(exporter))
    handler = LoggingHandler(level=logging.NOTSET, logger_provider=logger_provider)

    hashtag remove console
    logger.remove()
    logger.add(handler, serialize=True)
    logger.info('logs without trace')


    hashtag Trace context correlation
    tracer = trace.get_tracer(__name__)
    with tracer.start_as_current_span("foo"):
        hashtag Do something
        hashtag logger2.error("Hyderabad, we have a major problem.")
        logger.error("Hyderabad, we have a major problem.")

    logger_provider.shutdown()

hashtaghashtag console output:
![截屏2024-01-05 17 33 40](

hashtaghashtag env:

hashtag pyproject.toml

[tool.poetry.dependencies]
python = "^3.12"
opentelemetry-api = "^1.22.0"
opentelemetry-sdk = "^1.22.0"
opentelemetry-exporter-jaeger = "^1.21.0"
pymongo = "^4.6.1"
opentelemetry-instrumentation = "^0.43b0"
opentelemetry-distro = "^0.43b0"
opentelemetry-exporter-otlp-proto-grpc = "^1.22.0"
opentelemetry-instrumentation-pymongo = "^0.43b0"
opentelemetry-exporter-otlp = "^1.22.0"
loguru = "^0.7.2"
opentelemetry-instrumentation-logging = "^0.43b0"

system: macOS 14.2.1 (23C71)

)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions