golib/logger/console.go
2023-06-15 21:22:51 +08:00

56 lines
956 B
Go

//
// console.go
// Copyright (C) 2023 tiglog <me@tiglog.com>
//
// Distributed under terms of the MIT license.
//
package logger
import (
"os"
"sync"
"time"
"github.com/natefinch/lumberjack"
"github.com/rs/zerolog"
"github.com/rs/zerolog/pkgerrors"
)
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() {
zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack
zerolog.TimeFieldFormat = time.RFC3339Nano
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(zerolog.InfoLevel).
With().
Timestamp().
Logger()
console_log = &l
})
return console_log
}