[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) #48
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()
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:
hashtaghashtag console output: ![截屏2024-01-05 17 33 40](
hashtaghashtag env:
system: macOS 14.2.1 (23C71)
)