37 lines
837 B
Go
37 lines
837 B
Go
package logger
|
|
|
|
import (
|
|
"errors"
|
|
"log/slog"
|
|
"os"
|
|
|
|
"gitea.cybertalant.ru/VisionCareerMiniapp/MiniappGoService/internal/application/constants"
|
|
)
|
|
|
|
func Init(mode string) (*slog.Logger, error) {
|
|
var handler slog.Handler
|
|
var level slog.Level
|
|
|
|
switch mode {
|
|
case string(constants.LocalApplicationMode):
|
|
level = slog.LevelDebug
|
|
handler = slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{
|
|
Level: level,
|
|
})
|
|
case string(constants.DevApplicationMode):
|
|
level = slog.LevelDebug
|
|
handler = slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{
|
|
Level: level,
|
|
})
|
|
case string(constants.ProdApplicationMode):
|
|
level = slog.LevelInfo
|
|
handler = slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{
|
|
Level: level,
|
|
})
|
|
default:
|
|
return nil, errors.New("unknown logger mode: " + mode)
|
|
}
|
|
|
|
return slog.New(handler), nil
|
|
}
|