work in progress: logging with zerolog

This commit is contained in:
Helmut Merz 2023-06-26 10:29:57 +02:00
parent 82deb2c7f2
commit fe4cdbb3b8
3 changed files with 17 additions and 5 deletions

View file

@ -2,6 +2,7 @@ package logging
import (
"fmt"
"os"
"path/filepath"
"git.sr.ht/~cco/go-scopes/config"
@ -12,7 +13,7 @@ import (
type Logger = zerolog.Logger
var globalLogger Logger = log.Logger
var globalLogger *Logger = &log.Logger
type Cfg struct {
*config.BaseCfg
@ -24,23 +25,30 @@ func Setup(ctx lib.Context, cfg *Cfg, home string) {
if cfg == nil {
return // use unchanged predefined logger
}
fmt.Println("logging:", home, cfg.Logfile)
home, _ = filepath.Abs(home)
fn := cfg.Logfile
// TODO: use: logger := New(cfg, home)
if fn == "" {
fn = filepath.Join(home, "log", "scopes.log")
} else if !filepath.IsAbs(fn) {
fn = filepath.Join(home, fn)
}
fmt.Println("logfile:", fn)
if f, err := os.OpenFile(fn, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0664); err == nil {
logger := zerolog.New(f).With().Timestamp().Logger()
*globalLogger = logger
} else {
panic(err)
}
}
func New(cfg *Cfg, home string) *Logger {
return nil
}
func GetLogger(ctx lib.Context) *zerolog.Logger {
func GetLogger(ctx lib.Context) *Logger {
if ctx == nil {
return &globalLogger
return globalLogger
}
return nil
}

View file

@ -53,6 +53,6 @@ const (
// file `settings.go` that should not be stored in code repository.
func Overrides() config.Settings {
return config.Settings{
HOME: "tests",
//HOME: "tests",
}
}

4
tests/log/scopes.log Normal file
View file

@ -0,0 +1,4 @@
{"level":"info","service":"config","time":"2023-06-26T10:21:47+02:00","message":"started"}
{"level":"info","service":"test-receiver","time":"2023-06-26T10:21:47+02:00","message":"started"}
{"level":"info","service":"config","time":"2023-06-26T10:28:53+02:00","message":"started"}
{"level":"info","service":"test-receiver","time":"2023-06-26T10:28:53+02:00","message":"started"}