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 }