add sending of additional information to disk during a panic, changed the name of the called routing method
This commit is contained in:
18
cmd/serve.go
18
cmd/serve.go
@@ -7,6 +7,7 @@ import (
|
||||
"os"
|
||||
"os/signal"
|
||||
"path/filepath"
|
||||
"runtime/debug"
|
||||
"syscall"
|
||||
|
||||
"git.oblat.lv/alex/triggerssmith/api"
|
||||
@@ -81,7 +82,20 @@ var serveCmd = &cobra.Command{
|
||||
}
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
slog.Error("Application panicked", slog.Any("error", r))
|
||||
stack := debug.Stack()
|
||||
|
||||
f, err := os.OpenFile("panic.log", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644)
|
||||
if err != nil {
|
||||
slog.Error("Failed to open panic.log", slog.Any("error", err))
|
||||
} else {
|
||||
defer f.Close()
|
||||
f.WriteString(fmt.Sprintf("Panic: %v\n", r))
|
||||
f.Write(stack)
|
||||
f.WriteString("\n\n")
|
||||
}
|
||||
|
||||
slog.Error("Application panicked: the stack is flushed to disk", slog.Any("error", r))
|
||||
|
||||
os.Exit(-1)
|
||||
}
|
||||
}()
|
||||
@@ -130,7 +144,7 @@ var serveCmd = &cobra.Command{
|
||||
|
||||
router := api.NewRouter(cfg)
|
||||
|
||||
srv.SetHandler(router.RouteHandler())
|
||||
srv.SetHandler(router.MustRoute())
|
||||
srv.Init()
|
||||
|
||||
var addr = net.JoinHostPort(cfg.Server.Addr, fmt.Sprintf("%d", cfg.Server.Port))
|
||||
|
||||
Reference in New Issue
Block a user