Files
kgpz_web/helpers/parselog.go
Simon Martens 84fa6f7fa4 better logging
2024-11-16 17:30:14 +01:00

58 lines
957 B
Go

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)
}