diff options
author | Marc Pervaz Boocha <mboocha@sudomsg.com> | 2025-08-02 22:23:13 +0530 |
---|---|---|
committer | Marc Pervaz Boocha <mboocha@sudomsg.com> | 2025-08-02 23:02:30 +0530 |
commit | 178e0bfc2d8709ae4d3abd7519b260df09b2d3b5 (patch) | |
tree | 10cbdd013c62586190074d9f088e2269f88c4cab /logging/log.go | |
parent | Fixed Broken .gitignore (diff) | |
download | gopkgserver-0.1.0.tar gopkgserver-0.1.0.tar.gz gopkgserver-0.1.0.tar.bz2 gopkgserver-0.1.0.tar.lz gopkgserver-0.1.0.tar.xz gopkgserver-0.1.0.tar.zst gopkgserver-0.1.0.zip |
Diffstat (limited to '')
-rw-r--r-- | logging/log.go | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/logging/log.go b/logging/log.go deleted file mode 100644 index 8e3078f..0000000 --- a/logging/log.go +++ /dev/null @@ -1,56 +0,0 @@ -package logging - -import ( - "context" - "io" - "log/slog" - "os" - "runtime" -) - -type Config struct { - Level slog.Level `toml:"level"` - File string `toml:"file"` -} - -func SetupLogger(cfg Config) *slog.Logger { - opts := &slog.HandlerOptions{Level: cfg.Level} - var handler slog.Handler - - var writter io.Writer - writter = os.Stdout - if cfg.File != "" { - f, _ := os.OpenFile(cfg.File, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) - writter = f - } - handler = slog.NewJSONHandler(writter, opts) - - logger := slog.New(handler) - slog.SetDefault(logger) - return logger -} - -type contextKeyType struct{} - -var contextKey contextKeyType - -func WithLogger(ctx context.Context, logger *slog.Logger) context.Context { - return context.WithValue(ctx, contextKey, logger) -} - -func FromContext(ctx context.Context) *slog.Logger { - if logger, ok := ctx.Value(contextKey).(*slog.Logger); ok { - return logger - } - return slog.Default() -} - -func RecoverLog(ctx context.Context, err any) { - logger := FromContext(ctx) - - const size = 64 << 10 - buf := make([]byte, size) - buf = buf[:runtime.Stack(buf, false)] - - logger.Log(ctx, slog.LevelError, "Program Paniced", "error", err, "stack", string(buf)) -} |