3.7Kпросмотров
29 января 2026 г.
statsScore: 4.1K
Go 1.26: Множественные хендлеры в логах Теперь можно легко писать логи сразу в несколько мест — например, в консоль, файл или на удаленный сервер — с помощью стандартной библиотеки. Все благодаря slog.MultiHandler, который отправляет записи лога всем настроенным обработчикам. Например, создаем хендлер для записи в stdout: stdoutHand := slog.NewTextHandler(os.Stdout, nil) И второй для записи в файл: const flags = os.O_CREATE | os.O_WRONLY | os.O_APPEND
file, err := os.OpenFile("/tmp/app.log", flags, 0644)
if err != nil { log.Fatal(err) }
defer file.Close()
fileHand := slog.NewJSONHandler(file, nil) Комбинируем их через MultiHandler: multiHand := slog.NewMultiHandler(stdoutHand, fileHand)
logger := slog.New(multiHand) И логируем как обычно: logger.Info("login", slog.String("name", "whoami"), slog.Int("id", 42),
) Вряд ли это перевернет ваш мир, но штука полезная.