mirror of
https://github.com/42wim/matterbridge.git
synced 2024-12-19 07:22:01 -08:00
39 lines
1.1 KiB
Go
39 lines
1.1 KiB
Go
|
// Copyright (c) 2024 Tulir Asokan
|
||
|
//
|
||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||
|
|
||
|
package waLog
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
|
||
|
"github.com/rs/zerolog"
|
||
|
)
|
||
|
|
||
|
type zeroLogger struct {
|
||
|
mod string
|
||
|
zerolog.Logger
|
||
|
}
|
||
|
|
||
|
// Zerolog wraps a [zerolog.Logger] to implement the [Logger] interface.
|
||
|
//
|
||
|
// Subloggers will be created by setting the `sublogger` field in the log context.
|
||
|
func Zerolog(log zerolog.Logger) Logger {
|
||
|
return &zeroLogger{Logger: log}
|
||
|
}
|
||
|
|
||
|
func (z *zeroLogger) Warnf(msg string, args ...any) { z.Warn().Msgf(msg, args...) }
|
||
|
func (z *zeroLogger) Errorf(msg string, args ...any) { z.Error().Msgf(msg, args...) }
|
||
|
func (z *zeroLogger) Infof(msg string, args ...any) { z.Info().Msgf(msg, args...) }
|
||
|
func (z *zeroLogger) Debugf(msg string, args ...any) { z.Debug().Msgf(msg, args...) }
|
||
|
func (z *zeroLogger) Sub(module string) Logger {
|
||
|
if z.mod != "" {
|
||
|
module = fmt.Sprintf("%s/%s", z.mod, module)
|
||
|
}
|
||
|
return &zeroLogger{mod: module, Logger: z.Logger.With().Str("sublogger", module).Logger()}
|
||
|
}
|
||
|
|
||
|
var _ Logger = &zeroLogger{}
|