-
Notifications
You must be signed in to change notification settings - Fork 0
golang zap logger
foolmacky edited this page Jun 21, 2021
·
3 revisions
- bytes.BufferにWriteをかけたいと思うが、bytes.Bufferはconcurrent safeではないので、独自にlock制御を実装する必要がある
type lockBuff struct {
sync.Mutex
ws zapcore.WriteSyncer
}
func newLockedBuff(b *bytes.Buffer) *lockedBuff {
return &lockedBuff{ ws: zapcore.AddSync(b)}
}
func(lb *lockedBuff) Write(bs []byte) (int error) {
lb.Lock()
n, err := lb.ws.Write(bs)
lb.Unlock()
return n, err
}
func(lb *lockedBuff) Sync() error {
lb.Lock()
err := lb.ws.Sync()
lb.Unlock()
return err
}