-
Wolfgang Welz authoredWolfgang Welz authored
logger.go 985 B
package statusscreen
import (
stdlog "log"
"sync"
"time"
"github.com/iotaledger/hive.go/logger"
)
var (
mu sync.Mutex
logMessages = make([]*logMessage, 0)
logMessagesByName = make(map[string]*logMessage)
)
type logMessage struct {
time time.Time
name string
level logger.Level
msg string
}
func stdLogMsg(level logger.Level, name string, msg string) {
stdlog.Printf("[ %s ] %s: %s",
level.CapitalString(),
name,
msg,
)
}
func storeLogMsg(level logger.Level, name string, message string) {
mu.Lock()
defer mu.Unlock()
logMessages = append(logMessages, &logMessage{
time: time.Now(),
name: name,
level: level,
msg: message,
})
if statusMessage, exists := logMessagesByName[name]; !exists {
logMessagesByName[name] = &logMessage{
time: time.Now(),
name: name,
level: level,
msg: message,
}
} else {
statusMessage.time = time.Now()
statusMessage.level = level
statusMessage.msg = message
}
}