// Copyright 2025 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package slog_test import ( "bytes" "log/slog" "os" ) func ExampleMultiHandler() { removeTime := func(groups []string, a slog.Attr) slog.Attr { if a.Key == slog.TimeKey && len(groups) == 0 { return slog.Attr{} } return a } var textBuf, jsonBuf bytes.Buffer textHandler := slog.NewTextHandler(&textBuf, &slog.HandlerOptions{ReplaceAttr: removeTime}) jsonHandler := slog.NewJSONHandler(&jsonBuf, &slog.HandlerOptions{ReplaceAttr: removeTime}) multiHandler := slog.NewMultiHandler(textHandler, jsonHandler) logger := slog.New(multiHandler) logger.Info("login", slog.String("name", "whoami"), slog.Int("id", 42), ) os.Stdout.WriteString(textBuf.String()) os.Stdout.WriteString(jsonBuf.String()) // Output: // level=INFO msg=login name=whoami id=42 // {"level":"INFO","msg":"login","name":"whoami","id":42} }