From ae83373fa63883f03bd5580ad3937d1e5fa428ed Mon Sep 17 00:00:00 2001 From: Moritz Poldrack Date: Tue, 22 Mar 2022 09:52:27 +0100 Subject: logging: added a log on panic Since panics still regularly "destroy" the terminal, it is hard to get a stack trace for panics you do not anticipate. This commit adds a panic handler that automatically creates a logfile inside the current working directory. It has to be added to every goroutine that is started and will repair the terminal on a panic. Signed-off-by: Moritz Poldrack Acked-by: Robin Jarry --- widgets/status.go | 3 +++ 1 file changed, 3 insertions(+) (limited to 'widgets/status.go') diff --git a/widgets/status.go b/widgets/status.go index c70d215f..6c501b24 100644 --- a/widgets/status.go +++ b/widgets/status.go @@ -8,6 +8,7 @@ import ( "git.sr.ht/~rjarry/aerc/config" "git.sr.ht/~rjarry/aerc/lib/ui" + "git.sr.ht/~rjarry/aerc/logging" ) type StatusLine struct { @@ -78,6 +79,8 @@ func (status *StatusLine) Push(text string, expiry time.Duration) *StatusMessage } status.stack = append(status.stack, msg) go (func() { + defer logging.PanicHandler() + time.Sleep(expiry) for i, m := range status.stack { if m == msg { -- cgit