From 7996240b2ebe7caca88bb3c57c824f37034737a7 Mon Sep 17 00:00:00 2001 From: balandi1 Date: Thu, 21 Nov 2019 13:47:22 -0500 Subject: [PATCH] Encapsulated log directory name into a struct --- .../clsfnTaskDistOverheadLogger.go | 5 +- elektronLogging/consoleLogger.go | 5 +- elektronLogging/createLogDir.go | 47 ++++++++++--------- elektronLogging/logger.go | 8 ++-- elektronLogging/pcpLogger.go | 5 +- elektronLogging/schedPolicySwitchLogger.go | 5 +- elektronLogging/schedTraceLogger.go | 5 +- elektronLogging/schedWindowLogger.go | 5 +- 8 files changed, 47 insertions(+), 38 deletions(-) diff --git a/elektronLogging/clsfnTaskDistOverheadLogger.go b/elektronLogging/clsfnTaskDistOverheadLogger.go index 9bae203..891a736 100644 --- a/elektronLogging/clsfnTaskDistOverheadLogger.go +++ b/elektronLogging/clsfnTaskDistOverheadLogger.go @@ -38,8 +38,9 @@ func (cLog *ClsfnTaskDistOverheadLogger) Log(logType int, level log.Level, logDa func (cLog *ClsfnTaskDistOverheadLogger) SetLogFile(prefix string) { tskDistLogPrefix := strings.Join([]string{prefix, config.TaskDistConfig.FilenameExtension}, "") - if logDir != "" { - tskDistLogPrefix = strings.Join([]string{logDir, tskDistLogPrefix}, "/") + dirName := logDir.getDirName() + if dirName != "" { + tskDistLogPrefix = strings.Join([]string{dirName, tskDistLogPrefix}, "/") } if logFile, err := os.Create(tskDistLogPrefix); err != nil { log.Fatal("Unable to create logFile: ", err) diff --git a/elektronLogging/consoleLogger.go b/elektronLogging/consoleLogger.go index 1c6b379..77e7d03 100644 --- a/elektronLogging/consoleLogger.go +++ b/elektronLogging/consoleLogger.go @@ -35,8 +35,9 @@ func (cLog *ConsoleLogger) Log(logType int, level log.Level, logData log.Fields, func (cLog *ConsoleLogger) SetLogFile(prefix string) { consoleLogPrefix := strings.Join([]string{prefix, config.ConsoleConfig.FilenameExtension}, "") - if logDir != "" { - consoleLogPrefix = strings.Join([]string{logDir, consoleLogPrefix}, "/") + dirName := logDir.getDirName() + if dirName != "" { + consoleLogPrefix = strings.Join([]string{dirName, consoleLogPrefix}, "/") } if logFile, err := os.Create(consoleLogPrefix); err != nil { log.Fatal("Unable to create logFile: ", err) diff --git a/elektronLogging/createLogDir.go b/elektronLogging/createLogDir.go index 8de5faa..006bdff 100644 --- a/elektronLogging/createLogDir.go +++ b/elektronLogging/createLogDir.go @@ -1,34 +1,37 @@ package elektronLogging import ( - logrus "github.com/sirupsen/logrus" + log "github.com/sirupsen/logrus" "os" "strconv" "strings" "time" ) -var logDir string - -func GetLogDir(startTime time.Time, prefix string) { - if logDir == "" { - logDir = createLogDir(prefix, startTime) - } +type logDirectory struct { + name string } -func createLogDir(prefix string, startTime time.Time) string { - - // Creating directory to store all logs for this run - logDirName := strings.Join([]string{"./", prefix, strconv.Itoa(startTime.Year())}, "") - logDirName = strings.Join([]string{logDirName, startTime.Month().String(), strconv.Itoa(startTime.Day())}, "-") - logDirName = strings.Join([]string{logDirName, strconv.Itoa(startTime.Hour())}, "_") - logDirName = strings.Join([]string{logDirName, strconv.Itoa(startTime.Minute()), strconv.Itoa(startTime.Second())}, "-") - - if _, err := os.Stat(logDirName); os.IsNotExist(err) { - os.Mkdir(logDirName, 0755) - } else { - logrus.Println("Unable to create log directory: ", err) - logDirName = "" - } - return logDirName +func (logD *logDirectory) getDirName() string { + return logD.name +} + +func (logD *logDirectory) createLogDir(prefix string, startTime time.Time) { + + if logD.name == "" { + // Creating directory to store all logs for this run + logDirName := strings.Join([]string{"./", prefix, strconv.Itoa(startTime.Year())}, "") + logDirName = strings.Join([]string{logDirName, startTime.Month().String(), strconv.Itoa(startTime.Day())}, "-") + logDirName = strings.Join([]string{logDirName, strconv.Itoa(startTime.Hour())}, "_") + logDirName = strings.Join([]string{logDirName, strconv.Itoa(startTime.Minute()), strconv.Itoa(startTime.Second())}, "-") + + if _, err := os.Stat(logDirName); os.IsNotExist(err) { + os.Mkdir(logDirName, 0755) + } else { + log.Println("Unable to create log directory: ", err) + logDirName = "" + } + + logD.name = logDirName + } } diff --git a/elektronLogging/logger.go b/elektronLogging/logger.go index 1a275f5..c2ad4a5 100644 --- a/elektronLogging/logger.go +++ b/elektronLogging/logger.go @@ -12,6 +12,7 @@ var config LoggerConfig var logger *log.Logger var formatter ElektronFormatter var ElektronLog *LoggerImpl +var logDir logDirectory func BuildLogger(prefix string) { @@ -22,10 +23,9 @@ func BuildLogger(prefix string) { startTime := time.Now() formatter.TimestampFormat = "2006-01-02 15:04:05" formattedStartTime := startTime.Format("20060102150405") - GetLogDir(startTime, "_") - - prefix = strings.Join([]string{prefix, formattedStartTime}, "_") - + + logDir.createLogDir(prefix, startTime) + prefix = strings.Join([]string{prefix, formattedStartTime}, "_") logger = &log.Logger{ Out: os.Stderr, Level: log.DebugLevel, diff --git a/elektronLogging/pcpLogger.go b/elektronLogging/pcpLogger.go index d7d12ae..dd11077 100644 --- a/elektronLogging/pcpLogger.go +++ b/elektronLogging/pcpLogger.go @@ -38,8 +38,9 @@ func (pLog *PcpLogger) Log(logType int, level log.Level, logData log.Fields, mes func (plog *PcpLogger) SetLogFile(prefix string) { pcpLogPrefix := strings.Join([]string{prefix, config.PCPConfig.FilenameExtension}, "") - if logDir != "" { - pcpLogPrefix = strings.Join([]string{logDir, pcpLogPrefix}, "/") + dirName := logDir.getDirName() + if dirName != "" { + pcpLogPrefix = strings.Join([]string{dirName, pcpLogPrefix}, "/") } if logFile, err := os.Create(pcpLogPrefix); err != nil { log.Fatal("Unable to create logFile: ", err) diff --git a/elektronLogging/schedPolicySwitchLogger.go b/elektronLogging/schedPolicySwitchLogger.go index 6417bd3..79daffb 100644 --- a/elektronLogging/schedPolicySwitchLogger.go +++ b/elektronLogging/schedPolicySwitchLogger.go @@ -38,8 +38,9 @@ func (sLog *SchedPolicySwitchLogger) Log(logType int, level log.Level, logData l func (sLog *SchedPolicySwitchLogger) SetLogFile(prefix string) { spsLogPrefix := strings.Join([]string{prefix, config.SPSConfig.FilenameExtension}, "") - if logDir != "" { - spsLogPrefix = strings.Join([]string{logDir, spsLogPrefix}, "/") + dirName := logDir.getDirName() + if dirName != "" { + spsLogPrefix = strings.Join([]string{dirName, spsLogPrefix}, "/") } if logFile, err := os.Create(spsLogPrefix); err != nil { log.Fatal("Unable to create logFile: ", err) diff --git a/elektronLogging/schedTraceLogger.go b/elektronLogging/schedTraceLogger.go index 59b65bf..59f4935 100644 --- a/elektronLogging/schedTraceLogger.go +++ b/elektronLogging/schedTraceLogger.go @@ -38,8 +38,9 @@ func (sLog *SchedTraceLogger) Log(logType int, level log.Level, logData log.Fiel func (sLog *SchedTraceLogger) SetLogFile(prefix string) { schedTraceLogPrefix := strings.Join([]string{prefix, config.SchedTraceConfig.FilenameExtension}, "") - if logDir != "" { - schedTraceLogPrefix = strings.Join([]string{logDir, schedTraceLogPrefix}, "/") + dirName := logDir.getDirName() + if dirName != "" { + schedTraceLogPrefix = strings.Join([]string{dirName, schedTraceLogPrefix}, "/") } if logFile, err := os.Create(schedTraceLogPrefix); err != nil { log.Fatal("Unable to create logFile: ", err) diff --git a/elektronLogging/schedWindowLogger.go b/elektronLogging/schedWindowLogger.go index e9e83ad..4e296b5 100644 --- a/elektronLogging/schedWindowLogger.go +++ b/elektronLogging/schedWindowLogger.go @@ -38,8 +38,9 @@ func (sLog *SchedWindowLogger) Log(logType int, level log.Level, logData log.Fie func (sLog *SchedWindowLogger) SetLogFile(prefix string) { schedWindowLogPrefix := strings.Join([]string{prefix, config.SchedWindowConfig.FilenameExtension}, "") - if logDir != "" { - schedWindowLogPrefix = strings.Join([]string{logDir, schedWindowLogPrefix}, "/") + dirName := logDir.getDirName() + if dirName != "" { + schedWindowLogPrefix = strings.Join([]string{dirName, schedWindowLogPrefix}, "/") } if logFile, err := os.Create(schedWindowLogPrefix); err != nil { log.Fatal("Unable to create logFile: ", err)