// // work.go // Copyright (C) 2023 tiglog // // Distributed under terms of the MIT license. // package logger import ( "os" "sync" "github.com/natefinch/lumberjack" "github.com/rs/zerolog" ) var work_once sync.Once var work_log *zerolog.Logger var work_log_path = "./var/log/work.log" func SetupWorkLogFile(path string) { access_log_path = path } func Work() *zerolog.Logger { work_once.Do(func() { fileLogger := &lumberjack.Logger{ Filename: work_log_path, MaxSize: 5, // MaxBackups: 10, MaxAge: 14, Compress: true, } output := zerolog.MultiLevelWriter(os.Stderr, fileLogger) l := zerolog.New(output). Level(loggerLevel). With(). Timestamp(). Stack(). CallerWithSkipFrameCount(2). Logger() work_log = &l }) return work_log }