Files
ant-black 70132417ad publish: 1.2.0 snapshot (f3d7ec5)
channel: master

version: 1.2.0

source-ref: D:\code\open_source\ant-chrome master

source-commit: f3d7ec5

merged-public-base: 3d264eb
2026-05-05 18:08:10 +08:00

42 lines
822 B
Go

package logger
// MultiWriter 多写入器
// 同时写入多个目标
type MultiWriter struct {
writers []Writer
}
// NewMultiWriter 创建多写入器
func NewMultiWriter(writers ...Writer) *MultiWriter {
return &MultiWriter{
writers: writers,
}
}
// Write 写入日志到所有写入器
func (w *MultiWriter) Write(entry *LogEntry) error {
var lastErr error
for _, writer := range w.writers {
if err := writer.Write(entry); err != nil {
lastErr = err
}
}
return lastErr
}
// Close 关闭所有写入器
func (w *MultiWriter) Close() error {
var lastErr error
for _, writer := range w.writers {
if err := writer.Close(); err != nil {
lastErr = err
}
}
return lastErr
}
// AddWriter 添加写入器
func (w *MultiWriter) AddWriter(writer Writer) {
w.writers = append(w.writers, writer)
}