add logger

This commit is contained in:
pakintada@gmail.com 2023-09-22 11:00:35 +07:00
parent fda22acffe
commit a5f4d48aad
5 changed files with 88 additions and 0 deletions

View file

@ -0,0 +1,57 @@
package logger
import (
"os"
"github.com/natefinch/lumberjack"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)
var (
log_inst = NewLogger()
log_file_config = zapcore.AddSync(&lumberjack.Logger{
Filename: "services/logger/serverlog.log",
MaxSize: 500, // megabytes
MaxBackups: 3,
MaxAge: 28, //days
})
json_enc = zapcore.NewJSONEncoder(zapcore.EncoderConfig{
TimeKey: "timestamp",
LevelKey: "level",
NameKey: "logger",
EncodeLevel: zapcore.LowercaseLevelEncoder,
EncodeTime: zapcore.ISO8601TimeEncoder,
})
console_enc = zapcore.NewConsoleEncoder(zapcore.EncoderConfig{
TimeKey: "timestamp",
LevelKey: "level",
NameKey: "logger",
CallerKey: "caller",
MessageKey: "message",
StacktraceKey: "error",
EncodeLevel: zapcore.CapitalColorLevelEncoder,
EncodeTime: zapcore.ISO8601TimeEncoder,
})
)
func createLogggerConfig() *zap.Logger {
log_level := zap.NewAtomicLevelAt(zap.InfoLevel)
log_core := zapcore.NewTee(
zapcore.NewCore(json_enc, log_file_config, log_level),
zapcore.NewCore(console_enc, zapcore.AddSync(os.Stdout), log_level),
)
return zap.New(log_core)
}
func NewLogger() *zap.Logger {
log := createLogggerConfig()
defer log.Sync()
return log
}
func GetInstance() *zap.Logger {
return log_inst
}

View file

@ -0,0 +1,6 @@
{"level":"info","timestamp":"2023-09-22T10:58:35.135+0700","addr":":8080"}
{"level":"info","timestamp":"2023-09-22T10:58:47.594+0700","user":"pakin tadatanasakul"}
{"level":"info","timestamp":"2023-09-22T10:59:55.661+0700","user":"pakin tadatanasakul"}
{"level":"info","timestamp":"2023-09-22T10:59:59.995+0700","user":"pakin tadatanasakul"}
{"level":"info","timestamp":"2023-09-22T11:00:00.056+0700","user":"pakin tadatanasakul"}
{"level":"info","timestamp":"2023-09-22T11:00:07.558+0700","user":"pakin tadatanasakul"}