fix: prevent logger close recursion and unsafe writer closing
This commit is contained in:
10
logger.go
10
logger.go
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user