fix: prevent logger close recursion and unsafe writer closing

This commit is contained in:
2026-03-17 14:43:28 +03:00
parent 956755fe82
commit 6112a707c7
4 changed files with 227 additions and 24 deletions

View File

@@ -1,6 +1,7 @@
package slog
import (
"errors"
"fmt"
"io"
"strings"
@@ -83,13 +84,18 @@ func (l *Logger) AddWriter(writer LoggerWriter) *Logger {
return l
}
func (l *Logger) Close() error {
var errs []error
for _, writer := range l.writers {
if writer == nil {
continue
}
err := writer.Close()
if err != nil {
l.Error(err)
errs = append(errs, err)
}
}
return nil
l.writers = nil
return errors.Join(errs...)
}
func (l *Logger) CreateTextWriter(w io.Writer) *LoggerTextWriter {