"go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc"
"go.opentelemetry.io/otel/log/global"
"go.opentelemetry.io/otel/sdk/log"
func InitOtlLog() *log.LoggerProvider {
ctx := context.Background()
exporter, err := otlploggrpc.New(ctx,
otlploggrpc.WithEndpoint("{{apmplus_endpoint}}"),
otlploggrpc.WithInsecure(),
otlploggrpc.WithHeaders(map[string]string{"x-byteapm-appkey": "{{apmplus_appkey}}"}),
otlploggrpc.WithTimeout(10*time.Second),
hostname, _ := os.Hostname()
loggerProvider := log.NewLoggerProvider(
log.WithProcessor(log.NewBatchProcessor(exporter)),
log.WithResource(resource.NewWithAttributes(
semconv.ServiceNameKey.String("{{service_name}}"),
semconv.HostNameKey.String(hostname)),
global.SetLoggerProvider(loggerProvider)
loggerProvider := initOtlLog()
defer loggerProvider.Shutdown(context.Background())