Init commit repo setup
This commit is contained in:
76
pkg/log/log.go
Normal file
76
pkg/log/log.go
Normal file
@@ -0,0 +1,76 @@
|
||||
package log
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"go.elastic.co/ecszap"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
type Logger struct {
|
||||
log *zap.Logger
|
||||
}
|
||||
|
||||
var Log *Logger
|
||||
|
||||
func initiateLogger() *zap.Logger {
|
||||
config := zap.NewProductionConfig()
|
||||
config.EncoderConfig = ecszap.ECSCompatibleEncoderConfig(config.EncoderConfig)
|
||||
log, err := config.Build(ecszap.WrapCoreOption(), zap.AddCaller())
|
||||
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return log
|
||||
}
|
||||
|
||||
func Error(message string, fields ...zap.Field) {
|
||||
Log.log.Error(appendBaseMessage(message), fields...)
|
||||
}
|
||||
|
||||
func Warn(message string, fields ...zap.Field) {
|
||||
Log.log.Warn(appendBaseMessage(message), fields...)
|
||||
}
|
||||
|
||||
func Info(message string, fields ...zap.Field) {
|
||||
Log.log.Info(appendBaseMessage(message), fields...)
|
||||
}
|
||||
|
||||
func Fatal(message string, fields ...zap.Field) {
|
||||
Log.log.Fatal(appendBaseMessage(message), fields...)
|
||||
}
|
||||
|
||||
func Panic(message string, fields ...zap.Field) {
|
||||
Log.log.Panic(appendBaseMessage(message), fields...)
|
||||
}
|
||||
|
||||
func ErrorWithContext(c *gin.Context, message string, fields ...zap.Field) {
|
||||
requestLogEntryWithCorrelationId(c).Error(appendBaseMessage(message), fields...)
|
||||
}
|
||||
|
||||
func WarnWithContext(c *gin.Context, message string, fields ...zap.Field) {
|
||||
requestLogEntryWithCorrelationId(c).Warn(appendBaseMessage(message), fields...)
|
||||
}
|
||||
|
||||
func InfoWithContext(c *gin.Context, message string, fields ...zap.Field) {
|
||||
requestLogEntryWithCorrelationId(c).Info(appendBaseMessage(message), fields...)
|
||||
}
|
||||
|
||||
func requestLogEntryWithCorrelationId(c *gin.Context) *zap.Logger {
|
||||
return Log.log.With(
|
||||
zap.String("CorrelationId", c.Value("X-Correlation-Id").(string)),
|
||||
)
|
||||
}
|
||||
|
||||
func appendBaseMessage(message string) string {
|
||||
return "cybertron" + message
|
||||
}
|
||||
|
||||
func (l *Logger) GetLog() *zap.Logger {
|
||||
return Log.log
|
||||
}
|
||||
|
||||
func init() {
|
||||
Log = &Logger{
|
||||
log: initiateLogger(),
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user