diff options
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 | } | ||