123456789101112131415161718192021222324252627282930313233343536 |
- package log
- import (
- "fmt"
- "io"
- "os"
- "github.com/rs/zerolog"
- "github.com/rs/zerolog/log"
- "gopkg.in/natefinch/lumberjack.v2"
- "github.com/spf13/viper"
- )
- func NewLogger(conf *viper.Viper) {
- // UNIX Time is faster and smaller than most timestamps
- zerolog.TimeFieldFormat = "2006/01/02 15:04:05.000000"
- consoleWriter := zerolog.ConsoleWriter{
- Out: io.MultiWriter(
- os.Stdout,
- withLumberjack(conf),
- ),
- TimeFormat: "2006/01/02 15:04:05.000000",
- }
- log.Logger = log.Output(consoleWriter).With().Caller().Logger()
- }
- func withLumberjack(conf *viper.Viper) *lumberjack.Logger {
- return &lumberjack.Logger{
- Filename: fmt.Sprintf(conf.GetString("log.log_file_name"), conf.GetString("server.name")), // Log file path
- MaxSize: conf.GetInt("log.max_size"), // Maximum size unit for each log file: M
- MaxBackups: conf.GetInt("log.max_backups"), // The maximum number of backups that can be saved for log files
- MaxAge: conf.GetInt("log.max_age"), // Maximum number of days the file can be saved
- Compress: conf.GetBool("log.compress"), // Compression or not
- }
- }
|