refactor: use standard logger instead of logrus

This commit is contained in:
Lukas Zapletal 2025-04-29 15:17:22 +02:00 committed by Achilleas Koutsou
parent 48cd004bed
commit 392a04fd12
9 changed files with 152 additions and 29 deletions

8
internal/olog/package.go Normal file
View file

@ -0,0 +1,8 @@
// Package olog provides a simple wrapper around the standard log package
// variable so logging statements are shorter. Instead of pkg.Logger.Printf one
// can simply write olog.Printf.
//
// The name stands for "optional logger" because the output can be disabled by
// setting the logger to nil or providing io.Discard as the output. This is
// useful for user-configurable logging (e.g. --verbose flags for CLI apps).
package olog

83
internal/olog/proxy.go Normal file
View file

@ -0,0 +1,83 @@
package olog
import "io"
// Print is a proxy for log.Print.
func Print(v ...any) {
Default().Print(v...)
}
// Printf is a proxy for log.Printf.
func Printf(format string, v ...any) {
Default().Printf(format, v...)
}
// Println is a proxy for log.Println.
func Println(v ...any) {
Default().Println(v...)
}
// Fatal is a proxy for log.Fatal.
func Fatal(v ...any) {
Default().Fatal(v...)
}
// Fatalf is a proxy for log.Fatalf.
func Fatalf(format string, v ...any) {
Default().Fatalf(format, v...)
}
// Fatalln is a proxy for log.Fatalln.
func Fatalln(v ...any) {
Default().Fatalln(v...)
}
// Panic is a proxy for log.Panic.
func Panic(v ...any) {
Default().Panic(v...)
}
// Panicf is a proxy for log.Panicf.
func Panicf(format string, v ...any) {
Default().Panicf(format, v...)
}
// Panicln is a proxy for log.Panicln.
func Panicln(v ...any) {
Default().Panicln(v...)
}
// Writer is a proxy for log.Writer.
func Writer() io.Writer {
return Default().Writer()
}
// Output is a proxy for log.Output.
func Output(calldepth int, s string) error {
return Default().Output(calldepth+1, s)
}
// SetOutput is a proxy for log.SetOutput.
func SetOutput(w io.Writer) {
Default().SetOutput(w)
}
// Flags is a proxy for log.Flags.
func Flags() int {
return Default().Flags()
}
// SetFlags is a proxy for log.SetFlags.
func SetFlags(flag int) {
Default().SetFlags(flag)
}
// Prefix is a proxy for log.Prefix.
func Prefix() string {
return Default().Prefix()
}
// SetPrefix is a proxy for log.SetPrefix.
func SetPrefix(prefix string) {
Default().SetPrefix(prefix)
}

30
internal/olog/var.go Normal file
View file

@ -0,0 +1,30 @@
package olog
import (
"io"
"log"
"sync/atomic"
)
var logger atomic.Pointer[log.Logger]
func init() {
SetDefault(nil)
}
// SetDefault sets the default logger to the provided logger. When nil is passed,
// the default logger is set to a no-op logger that discards all log messages.
func SetDefault(l *log.Logger) {
if l == nil {
logger.Store(log.New(io.Discard, "", 0))
return
}
logger.Store(l)
}
// Default returns the default logger. If no logger has been set, it returns a
// no-op logger that discards all log messages.
func Default() *log.Logger {
return logger.Load()
}