56 lines
923 B
Go
56 lines
923 B
Go
//
|
|
// work.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 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() {
|
|
zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack
|
|
zerolog.TimeFieldFormat = time.RFC3339Nano
|
|
|
|
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(zerolog.InfoLevel).
|
|
With().
|
|
Timestamp().
|
|
Logger()
|
|
|
|
work_log = &l
|
|
})
|
|
|
|
return work_log
|
|
}
|