39 lines
546 B
Go
39 lines
546 B
Go
package logger
|
|
|
|
import (
|
|
"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)
|
|
log.db.Save()
|
|
}
|
|
}
|
|
|
|
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
|
|
}
|