// // console.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 console_once sync.Once var console_log *zerolog.Logger var console_log_path = "./var/log/console.log" func SetupConsoleLogFile(path string) { access_log_path = path } func Console() *zerolog.Logger { console_once.Do(func() { fileLogger := &lumberjack.Logger{ Filename: console_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() console_log = &l }) return console_log }