Upload files to "v1"

This commit is contained in:
2025-12-22 15:15:42 +00:00
parent d5de70103a
commit cd100b6904
44 changed files with 4420 additions and 0 deletions

69
v1/logging.go Normal file
View File

@@ -0,0 +1,69 @@
package logging
import (
"context"
"log/slog"
"os"
)
var Logger *slog.Logger
type MultiHandler struct {
handlers []slog.Handler
}
func (m *MultiHandler) Enabled(ctx context.Context, level slog.Level) bool {
for _, h := range m.handlers {
if h.Enabled(ctx, level) {
return true
}
}
return false
}
func (m *MultiHandler) Handle(ctx context.Context, record slog.Record) error {
for _, h := range m.handlers {
_ = h.Handle(ctx, record)
}
return nil
}
func (m *MultiHandler) WithAttrs(attrs []slog.Attr) slog.Handler {
newHandlers := make([]slog.Handler, len(m.handlers))
for i, h := range m.handlers {
newHandlers[i] = h.WithAttrs(attrs)
}
return &MultiHandler{handlers: newHandlers}
}
func (m *MultiHandler) WithGroup(name string) slog.Handler {
newHandlers := make([]slog.Handler, len(m.handlers))
for i, h := range m.handlers {
newHandlers[i] = h.WithGroup(name)
}
return &MultiHandler{handlers: newHandlers}
}
func InitLogger() {
logFile, err := os.OpenFile("../angel_api-server.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
slog.Default().Error("Error opening log file", "error", err)
return
}
fileHandler := slog.NewJSONHandler(logFile, &slog.HandlerOptions{Level: slog.LevelDebug})
consoleHandler := slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{Level: slog.LevelDebug})
multiHandler := &MultiHandler{handlers: []slog.Handler{fileHandler, consoleHandler}}
Logger = slog.New(multiHandler)
slog.SetDefault(Logger)
}
func GetLogger() *slog.Logger {
if Logger == nil {
InitLogger()
}
return Logger
}