diff --git a/logger/consolelogger.go b/logger/consolelogger.go index d0c3256..30dfdf8 100644 --- a/logger/consolelogger.go +++ b/logger/consolelogger.go @@ -12,9 +12,11 @@ func (lgr *ConsoleLoggerImpl) init() { func (logger *ConsoleLoggerImpl) StartLogger() { fmt.Println("Starting Logger") loggerlogonce.Do(func() { - for msg := range logger.messages { - fmt.Print(msg) - } + go func() { + for msg := range logger.messages { + fmt.Print(msg) + } + }() }) } diff --git a/logger/filelogger.go b/logger/filelogger.go index 5f023ab..3c537b3 100644 --- a/logger/filelogger.go +++ b/logger/filelogger.go @@ -40,25 +40,27 @@ func (lgr *FileLoggerImpl) init() { func (logger *FileLoggerImpl) StartLogger() { fmt.Println("Starting FileLogger") loggerlogonce.Do(func() { - for msg := range logger.messages { + go func() { + for msg := range logger.messages { - logger.mutex.Lock() - _, err := logger.logFile.WriteString(msg) - if err != nil { - fmt.Println(err.Error()) - logger.logFile.Close() - logger.mutex.Unlock() - panic("Failed to write to file") - } - err = logger.logFile.Sync() - if err != nil { - logger.logFile.Close() - logger.mutex.Unlock() + logger.mutex.Lock() + _, err := logger.logFile.WriteString(msg) + if err != nil { + fmt.Println(err.Error()) + logger.logFile.Close() + logger.mutex.Unlock() + panic("Failed to write to file") + } + err = logger.logFile.Sync() + if err != nil { + logger.logFile.Close() + logger.mutex.Unlock() - panic("Failed to write to file") + panic("Failed to write to file") + } + logger.mutex.Unlock() } - logger.mutex.Unlock() - } + }() }) // Technically we should do this but this will never run // logger.mutex.Lock()