31 lines
901 B
Go
31 lines
901 B
Go
package mongoLogger
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
|
|
"go.uber.org/zap"
|
|
"go.uber.org/zap/zapcore"
|
|
)
|
|
|
|
func Init() {
|
|
// Replace localhost if inside Docker
|
|
mongoCore, err := NewMongoCore("mongodb://root:secret@mongo:27017/?authSource=admin", "logdb", "applogs", zapcore.InfoLevel)
|
|
if err != nil {
|
|
log.Fatalf("failed to create MongoDB core: %v", err)
|
|
}
|
|
|
|
consoleEncoder := zapcore.NewConsoleEncoder(zap.NewDevelopmentEncoderConfig())
|
|
consoleCore := zapcore.NewCore(consoleEncoder, zapcore.Lock(os.Stdout), zapcore.DebugLevel)
|
|
|
|
combinedCore := zapcore.NewTee(mongoCore, consoleCore)
|
|
|
|
logger := zap.New(combinedCore, zap.AddCaller(), zap.AddStacktrace(zapcore.ErrorLevel))
|
|
zap.ReplaceGlobals(logger) // Optional but useful if you use zap.L()
|
|
|
|
defer logger.Sync()
|
|
|
|
logger.Info("Application started", zap.String("module", "main"))
|
|
logger.Error("Something went wrong", zap.String("error_code", "E123"))
|
|
}
|