39 lines
709 B
Go
39 lines
709 B
Go
package util
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/rs/zerolog"
|
|
)
|
|
|
|
type BufferWriter struct {
|
|
cw *zerolog.ConsoleWriter
|
|
|
|
buffer []func(cw *zerolog.ConsoleWriter)
|
|
}
|
|
|
|
func (b *BufferWriter) Write(p []byte) (n int, err error) {
|
|
b.buffer = append(b.buffer, func(cw *zerolog.ConsoleWriter) {
|
|
_, _ = cw.Write(p)
|
|
})
|
|
return len(p), nil
|
|
}
|
|
|
|
func (b *BufferWriter) Dump() {
|
|
for _, v := range b.buffer {
|
|
v(b.cw)
|
|
}
|
|
b.buffer = nil
|
|
}
|
|
|
|
func (b *BufferWriter) Println(a ...any) {
|
|
b.buffer = append(b.buffer, func(cw *zerolog.ConsoleWriter) {
|
|
fmt.Println(a...)
|
|
})
|
|
}
|
|
|
|
func (b *BufferWriter) Printf(format string, a ...any) {
|
|
b.buffer = append(b.buffer, func(cw *zerolog.ConsoleWriter) {
|
|
fmt.Printf(format, a...)
|
|
})
|
|
}
|