mirror of
https://github.com/Theodor-Springmann-Stiftung/kgpz_web.git
synced 2025-10-29 17:15:31 +00:00
better logging
This commit is contained in:
57
helpers/parselog.go
Normal file
57
helpers/parselog.go
Normal file
@@ -0,0 +1,57 @@
|
||||
package helpers
|
||||
|
||||
import "sync"
|
||||
|
||||
type LogMessage struct {
|
||||
Commit string
|
||||
File string
|
||||
Message string
|
||||
Fatal bool
|
||||
}
|
||||
|
||||
type ParseLogger struct {
|
||||
mu sync.Mutex
|
||||
Messages []LogMessage
|
||||
}
|
||||
|
||||
func NewParseLog() *ParseLogger {
|
||||
return &ParseLogger{
|
||||
Messages: make([]LogMessage, 0),
|
||||
}
|
||||
}
|
||||
|
||||
func (p *ParseLogger) AddMessage(commit, file, message string, fatal bool) {
|
||||
p.mu.Lock()
|
||||
defer p.mu.Unlock()
|
||||
p.Messages = append(p.Messages, LogMessage{
|
||||
Commit: commit,
|
||||
File: file,
|
||||
Message: message,
|
||||
Fatal: fatal,
|
||||
})
|
||||
}
|
||||
|
||||
func (p *ParseLogger) Fatal() bool {
|
||||
p.mu.Lock()
|
||||
defer p.mu.Unlock()
|
||||
for _, m := range p.Messages {
|
||||
if m.Fatal {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (p *ParseLogger) GetMessages() []LogMessage {
|
||||
p.mu.Lock()
|
||||
defer p.mu.Unlock()
|
||||
res := make([]LogMessage, len(p.Messages))
|
||||
copy(res, p.Messages)
|
||||
return res
|
||||
}
|
||||
|
||||
func (p *ParseLogger) Clear() {
|
||||
p.mu.Lock()
|
||||
defer p.mu.Unlock()
|
||||
p.Messages = make([]LogMessage, 0)
|
||||
}
|
||||
Reference in New Issue
Block a user