admin管理员组

文章数量:1406951

I'm new to golang.

Trying to export logs to otel-collector but output is coming in json. Everything is working fine with Otel v1.34.0

For testing locally otel-collector, loki, grafana is also implemetned.

I want to get it without json

package main

import (
    "context"
    stdlog "log/slog"

    "go.opentelemetry.io/contrib/bridges/otelslog"
    "go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp"
    "go.opentelemetry.io/otel/log/global"
    "go.opentelemetry.io/otel/sdk/log"
)

func main() {
    ctx := context.Background()

    // Create the OTLP log exporter that sends logs to configured destination
    logExporter, err := otlploghttp.New(ctx)
    if err != nil {
        panic("failed to initialize exporter")
    }

    // Create the logger provider
    lp := log.NewLoggerProvider(
        log.WithProcessor(
            log.NewBatchProcessor(logExporter),
        ),
        //log.WithResource(res),
    )

    // Ensure the logger is shutdown before exiting so all pending logs are exported
    defer lp.Shutdown(ctx)

    // Set the logger provider globally
    global.SetLoggerProvider(lp)

    // Instantiate a new slog logger
    logger := otelslog.NewLogger("test", otelslog.WithLoggerProvider(lp))

    stdlog.SetDefault(logger)

    // You can use the logger directly anywhere in your app now
    logger.Debug("1n1ew way of logging")
    logger.Info("1new way of logging")
    logger.Error("1new way of logging")
    logger.Warn("1new way of logging")
    stdlog.Info("1new way of logging")

}

output

{"body":"1new way of logging","resources":{"GIT_VERSION":"324","environment":"dev","service.name":"tracking","service.version":"1.0=true","telemetry.sdk.language":"go","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.34.0"},"instrumentation_scope":{"name":"test"}}

本文标签: goGolangOpentelemtry logging output without jsonStack Overflow