diff options
author | Simon Garrelou <simon.garrelou@gmail.com> | 2023-12-20 14:13:17 +0100 |
---|---|---|
committer | Simon Garrelou <simon.garrelou@gmail.com> | 2023-12-20 14:14:44 +0100 |
commit | a8a457df1cfa03ebde0ceb79476aabab5ae2d340 (patch) | |
tree | c8ca9deaaa4ccf3bb4eab6dd73ff273326ffda73 /src/errors.go | |
parent | 6ab30541671561c647843e0a0a8d0a51208e4f42 (diff) | |
download | termsonic-a8a457df1cfa03ebde0ceb79476aabab5ae2d340.tar.gz termsonic-a8a457df1cfa03ebde0ceb79476aabab5ae2d340.zip |
Add file-based error logging
Diffstat (limited to 'src/errors.go')
-rw-r--r-- | src/errors.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/errors.go b/src/errors.go new file mode 100644 index 0000000..7fea064 --- /dev/null +++ b/src/errors.go | |||
@@ -0,0 +1,28 @@ | |||
1 | package src | ||
2 | |||
3 | import ( | ||
4 | "fmt" | ||
5 | "os" | ||
6 | "time" | ||
7 | ) | ||
8 | |||
9 | var globalErrors = make(chan error, 100) | ||
10 | |||
11 | func init() { | ||
12 | go func() { | ||
13 | f, err := os.OpenFile("errors.log", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0o664) | ||
14 | if err != nil { | ||
15 | panic(err) | ||
16 | } | ||
17 | defer f.Close() | ||
18 | |||
19 | for e := range globalErrors { | ||
20 | f.WriteString(fmt.Sprintf("%s: %v\n", time.Now(), e)) | ||
21 | f.Sync() | ||
22 | } | ||
23 | }() | ||
24 | } | ||
25 | |||
26 | func LogErrorf(format string, args ...any) { | ||
27 | globalErrors <- fmt.Errorf(format, args...) | ||
28 | } | ||