mirror of
https://github.com/paralus/paralus.git
synced 2026-02-14 17:49:51 +00:00
35 lines
701 B
Go
35 lines
701 B
Go
package audit
|
|
|
|
import (
|
|
"go.uber.org/zap"
|
|
"go.uber.org/zap/zapcore"
|
|
"gopkg.in/natefinch/lumberjack.v2"
|
|
)
|
|
|
|
// options holds audit options
|
|
type AuditOptions struct {
|
|
LogPath string
|
|
MaxSizeMB int
|
|
MaxBackups int
|
|
MaxAgeDays int
|
|
}
|
|
|
|
func GetAuditLogger(opts *AuditOptions) *zap.Logger {
|
|
encoder := zapcore.EncoderConfig{
|
|
TimeKey: "timestamp",
|
|
EncodeTime: zapcore.RFC3339NanoTimeEncoder,
|
|
}
|
|
logger := zap.New(zapcore.NewCore(
|
|
zapcore.NewJSONEncoder(encoder),
|
|
zapcore.AddSync(&lumberjack.Logger{
|
|
Filename: opts.LogPath,
|
|
MaxSize: opts.MaxSizeMB, // megabytes
|
|
MaxBackups: opts.MaxBackups,
|
|
MaxAge: opts.MaxAgeDays, // days
|
|
}),
|
|
zap.InfoLevel,
|
|
))
|
|
|
|
return logger
|
|
}
|