Skip to main content
Deze documentatie beschrijft hoe u logging configureert met de AppSignal for Go-integratie.

Logging configureren

🔐 Stuur geen Persoonlijk Identificeerbare Informatie (PII) naar AppSignal. Filter PII (bijv. namen, e-mailadressen) uit logs en gebruik in plaats daarvan een ID, hash of gepseudonimiseerde identificator.

Voor onder HIPAA vallende entiteiten vindt u meer informatie over het ondertekenen van een Business Associate Agreement (BAA) in onze documentatie over Business Add-Ons.
U hoeft geen logbron aan te maken om logs te versturen vanuit de AppSignal for Go-integratie. Er wordt automatisch een “application”-logbron aangemaakt. De Go-integratie gebruikt de logging-mogelijkheden van OpenTelemetry om logs naar AppSignal te sturen.

Zelfstandig gebruik

Om logging met OpenTelemetry in Go te gebruiken, moet u de logger instellen met de logger-provider van OpenTelemetry.
package main

import (
	"context"
	"go.opentelemetry.io/otel"
	"go.opentelemetry.io/otel/log"
)

func main() {
	// Get the logger from the global logger provider
	loggerProvider := otel.GetLoggerProvider()
	logger := loggerProvider.Logger("my-app")

	// Log a message
	logger.Emit(context.Background(), log.Record{
		Severity: log.SeverityInfo,
		Body:     log.StringValue("Log message line"),
	})
}

Gebruik met slog

U kunt het standaard slog-pakket configureren om gestructureerde logs naar AppSignal te sturen met behulp van de OpenTelemetry-handler.
package main

import (
	"context"
	"log/slog"
	"go.opentelemetry.io/contrib/bridges/otelslog"
)

func main() {
	// Create an OpenTelemetry `slog` handler
	otelHandler := otelslog.NewHandler("my-app")

	// Create a `slog` logger with the OpenTelemetry handler
	logger := slog.New(otelHandler)

	// Use the logger
	logger.Info("Log message line")
	logger.With("user_id", 123).Info("User logged in")
	logger.Error("An error occurred", "error", "database connection failed")
}

Gebruik

Logs versturen

Door de OpenTelemetry-logger direct te gebruiken, kunt u de severity-niveau van uw logs definiëren:
package main

import (
	"context"
	"go.opentelemetry.io/otel"
	"go.opentelemetry.io/otel/log"
)

func main() {
	loggerProvider := otel.GetLoggerProvider()
	logger := loggerProvider.Logger("my-app")

	// Different severity levels
	logger.Emit(context.Background(), log.Record{
		Severity: log.SeverityWarn,
		Body:     log.StringValue("Something went wrong"),
	})

	logger.Emit(context.Background(), log.Record{
		Severity: log.SeverityInfo,
		Body:     log.StringValue("Action completed"),
	})

	logger.Emit(context.Background(), log.Record{
		Severity: log.SeverityError,
		Body:     log.StringValue("Database connection failed"),
	})
}
U kunt aangepaste attributen definiëren om loginformatie te versturen die kan worden gebruikt bij het filteren en opvragen van logs:
package main

import (
	"context"
	"go.opentelemetry.io/otel"
	"go.opentelemetry.io/otel/log"
)

func processInvoice(customerID string) {
	loggerProvider := otel.GetLoggerProvider()
	logger := loggerProvider.Logger("invoice_helper")

	logger.Emit(context.Background(), log.Record{
		Severity: log.SeverityInfo,
		Body:     log.StringValue("Generating invoice for customer"),
		Attributes: []log.KeyValue{
			log.String("customer_id", customerID),
		},
	})

	invoice := generateInvoice(customerID)

	logger.Emit(context.Background(), log.Record{
		Severity: log.SeverityInfo,
		Body:     log.StringValue("Generated invoice for customer"),
		Attributes: []log.KeyValue{
			log.String("customer_id", customerID),
			log.String("invoice_id", invoice.ID),
		},
	})
}
U kunt op berichtinhoud en attribuutwaarden filteren en opvragen vanuit de Log Management-tool. Eenmaal geconfigureerd, worden de gewenste attributen als log-tags naar AppSignal verstuurd en zijn ze opvraagbaar in de AppSignal logging-interface.

Logs filteren

U kunt de configuratieoptie ignore_logs gebruiken om logregels te negeren. Zie onze gids Logs negeren voor meer informatie.

Hulp nodig?

Nadat u uw Go-applicatie hebt geconfigureerd om logs te versturen, zouden er logs in AppSignal moeten verschijnen. Als u twijfelt over deze stap of AppSignal geen logs ontvangt, kunt u altijd contact opnemen voor hulp. Wij helpen u graag weer op weg!