th7/db/logger/logger.go

45 lines
672 B
Go

package logger
import (
"fmt"
"th7/ports"
"time"
)
type Logger struct {
core ports.CorePort
db ports.DBPort
period int
run bool
}
func doLogging(log *Logger) {
duration := time.Duration(log.period) * time.Second
for log.run {
time.Sleep(duration)
ch, err := log.core.GetChannels()
if err != nil {
fmt.Printf("error getting data for logger: %v\n", err)
}
log.db.Save(ch)
}
}
func NewLogger(core ports.CorePort, db ports.DBPort, period int) *Logger {
var logger Logger
logger.db = db
logger.core = core
logger.period = period
logger.run = true
go doLogging(&logger)
return &logger
}
func (l *Logger) Stop() {
l.run = false
}