46 lines
826 B
Go
46 lines
826 B
Go
package logging
|
|
|
|
import (
|
|
"fmt"
|
|
"path/filepath"
|
|
|
|
"git.sr.ht/~cco/go-scopes/config"
|
|
"git.sr.ht/~cco/go-scopes/lib"
|
|
"github.com/rs/zerolog"
|
|
"github.com/rs/zerolog/log"
|
|
)
|
|
|
|
type Logger = zerolog.Logger
|
|
|
|
var globalLogger Logger = log.Logger
|
|
|
|
type Cfg struct {
|
|
*config.BaseCfg
|
|
Logfile string
|
|
Level zerolog.Level
|
|
}
|
|
|
|
func Setup(ctx lib.Context, cfg *Cfg, home string) {
|
|
if cfg == nil {
|
|
return // use unchanged predefined logger
|
|
}
|
|
fmt.Println("logging:", home, cfg.Logfile)
|
|
fn := cfg.Logfile
|
|
if fn == "" {
|
|
fn = filepath.Join(home, "log", "scopes.log")
|
|
} else if !filepath.IsAbs(fn) {
|
|
fn = filepath.Join(home, fn)
|
|
}
|
|
fmt.Println("logfile:", fn)
|
|
}
|
|
|
|
func New(cfg *Cfg, home string) *Logger {
|
|
return nil
|
|
}
|
|
|
|
func GetLogger(ctx lib.Context) *zerolog.Logger {
|
|
if ctx == nil {
|
|
return &globalLogger
|
|
}
|
|
return nil
|
|
}
|