40 lines
1.1 KiB
Go
40 lines
1.1 KiB
Go
package configs
|
||
|
||
import (
|
||
"os"
|
||
|
||
"go.uber.org/zap"
|
||
"go.uber.org/zap/zapcore"
|
||
)
|
||
|
||
var Logger *zap.Logger
|
||
|
||
func init() {
|
||
// initialize default logger early so other packages can use it in their init functions
|
||
LogerAres()
|
||
}
|
||
|
||
func LogerAres() {
|
||
logFile, err := os.Create("./info.log")
|
||
if err != nil {
|
||
// Fallback: sadece konsola yaz
|
||
core := zapcore.NewCore(
|
||
zapcore.NewConsoleEncoder(zap.NewDevelopmentEncoderConfig()),
|
||
zapcore.AddSync(os.Stdout),
|
||
zapcore.DebugLevel,
|
||
)
|
||
Logger = zap.New(core, zap.AddCaller())
|
||
Logger.Warn("info.log açılamadı, sadece konsola yazılıyor", zap.Error(err))
|
||
return
|
||
}
|
||
// Hem dosyaya hem konsola yaz (logları görebilirsin)
|
||
encoderConfig := zap.NewProductionEncoderConfig()
|
||
encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
|
||
encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder
|
||
encoder := zapcore.NewConsoleEncoder(encoderConfig)
|
||
multiOut := zapcore.NewMultiWriteSyncer(zapcore.AddSync(os.Stdout), zapcore.AddSync(logFile))
|
||
core := zapcore.NewCore(encoder, multiOut, zapcore.DebugLevel)
|
||
Logger = zap.New(core, zap.AddCaller())
|
||
Logger.Info("Logger başlatıldı (konsol + info.log)")
|
||
}
|