// // init.go // Copyright (C) 2023 tiglog // // Distributed under terms of the MIT license. // package logger import ( "path/filepath" "strconv" "strings" "time" "github.com/rs/zerolog" "github.com/rs/zerolog/pkgerrors" ) var loggerLevel = zerolog.InfoLevel func init() { // zerolog.ErrorStackMarshaler = func(err error) interface{} { // return pkgerrors.MarshalStack(errors.Wrap(err, "wrap")) // } zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack zerolog.TimeFieldFormat = time.RFC3339 zerolog.CallerMarshalFunc = func(pc uintptr, file string, line int) string { new_files := strings.Split(file, "/") l := len(new_files) pos := 0 var new_file string if l-3 > 0 { pos = l - 3 new_file = strings.Join(new_files[pos:], "/") } else { new_file = filepath.Base(file) } return new_file + ":" + strconv.Itoa(line) } } func SetLevel(level zerolog.Level) { loggerLevel = level }