Encapsulated log directory name into a struct

This commit is contained in:
balandi1 2019-11-21 13:47:22 -05:00
parent 13c3de44be
commit 7996240b2e
8 changed files with 47 additions and 38 deletions

View file

@ -38,8 +38,9 @@ func (cLog *ClsfnTaskDistOverheadLogger) Log(logType int, level log.Level, logDa
func (cLog *ClsfnTaskDistOverheadLogger) SetLogFile(prefix string) { func (cLog *ClsfnTaskDistOverheadLogger) SetLogFile(prefix string) {
tskDistLogPrefix := strings.Join([]string{prefix, config.TaskDistConfig.FilenameExtension}, "") tskDistLogPrefix := strings.Join([]string{prefix, config.TaskDistConfig.FilenameExtension}, "")
if logDir != "" { dirName := logDir.getDirName()
tskDistLogPrefix = strings.Join([]string{logDir, tskDistLogPrefix}, "/") if dirName != "" {
tskDistLogPrefix = strings.Join([]string{dirName, tskDistLogPrefix}, "/")
} }
if logFile, err := os.Create(tskDistLogPrefix); err != nil { if logFile, err := os.Create(tskDistLogPrefix); err != nil {
log.Fatal("Unable to create logFile: ", err) log.Fatal("Unable to create logFile: ", err)

View file

@ -35,8 +35,9 @@ func (cLog *ConsoleLogger) Log(logType int, level log.Level, logData log.Fields,
func (cLog *ConsoleLogger) SetLogFile(prefix string) { func (cLog *ConsoleLogger) SetLogFile(prefix string) {
consoleLogPrefix := strings.Join([]string{prefix, config.ConsoleConfig.FilenameExtension}, "") consoleLogPrefix := strings.Join([]string{prefix, config.ConsoleConfig.FilenameExtension}, "")
if logDir != "" { dirName := logDir.getDirName()
consoleLogPrefix = strings.Join([]string{logDir, consoleLogPrefix}, "/") if dirName != "" {
consoleLogPrefix = strings.Join([]string{dirName, consoleLogPrefix}, "/")
} }
if logFile, err := os.Create(consoleLogPrefix); err != nil { if logFile, err := os.Create(consoleLogPrefix); err != nil {
log.Fatal("Unable to create logFile: ", err) log.Fatal("Unable to create logFile: ", err)

View file

@ -1,34 +1,37 @@
package elektronLogging package elektronLogging
import ( import (
logrus "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"os" "os"
"strconv" "strconv"
"strings" "strings"
"time" "time"
) )
var logDir string type logDirectory struct {
name string
func GetLogDir(startTime time.Time, prefix string) {
if logDir == "" {
logDir = createLogDir(prefix, startTime)
}
} }
func createLogDir(prefix string, startTime time.Time) string { func (logD *logDirectory) getDirName() string {
return 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())}, "-") func (logD *logDirectory) createLogDir(prefix string, startTime time.Time) {
logDirName = strings.Join([]string{logDirName, strconv.Itoa(startTime.Hour())}, "_")
logDirName = strings.Join([]string{logDirName, strconv.Itoa(startTime.Minute()), strconv.Itoa(startTime.Second())}, "-") if logD.name == "" {
// Creating directory to store all logs for this run
if _, err := os.Stat(logDirName); os.IsNotExist(err) { logDirName := strings.Join([]string{"./", prefix, strconv.Itoa(startTime.Year())}, "")
os.Mkdir(logDirName, 0755) logDirName = strings.Join([]string{logDirName, startTime.Month().String(), strconv.Itoa(startTime.Day())}, "-")
} else { logDirName = strings.Join([]string{logDirName, strconv.Itoa(startTime.Hour())}, "_")
logrus.Println("Unable to create log directory: ", err) logDirName = strings.Join([]string{logDirName, strconv.Itoa(startTime.Minute()), strconv.Itoa(startTime.Second())}, "-")
logDirName = ""
} if _, err := os.Stat(logDirName); os.IsNotExist(err) {
return logDirName os.Mkdir(logDirName, 0755)
} else {
log.Println("Unable to create log directory: ", err)
logDirName = ""
}
logD.name = logDirName
}
} }

View file

@ -12,6 +12,7 @@ var config LoggerConfig
var logger *log.Logger var logger *log.Logger
var formatter ElektronFormatter var formatter ElektronFormatter
var ElektronLog *LoggerImpl var ElektronLog *LoggerImpl
var logDir logDirectory
func BuildLogger(prefix string) { func BuildLogger(prefix string) {
@ -22,10 +23,9 @@ func BuildLogger(prefix string) {
startTime := time.Now() startTime := time.Now()
formatter.TimestampFormat = "2006-01-02 15:04:05" formatter.TimestampFormat = "2006-01-02 15:04:05"
formattedStartTime := startTime.Format("20060102150405") formattedStartTime := startTime.Format("20060102150405")
GetLogDir(startTime, "_")
logDir.createLogDir(prefix, startTime)
prefix = strings.Join([]string{prefix, formattedStartTime}, "_") prefix = strings.Join([]string{prefix, formattedStartTime}, "_")
logger = &log.Logger{ logger = &log.Logger{
Out: os.Stderr, Out: os.Stderr,
Level: log.DebugLevel, Level: log.DebugLevel,

View file

@ -38,8 +38,9 @@ func (pLog *PcpLogger) Log(logType int, level log.Level, logData log.Fields, mes
func (plog *PcpLogger) SetLogFile(prefix string) { func (plog *PcpLogger) SetLogFile(prefix string) {
pcpLogPrefix := strings.Join([]string{prefix, config.PCPConfig.FilenameExtension}, "") pcpLogPrefix := strings.Join([]string{prefix, config.PCPConfig.FilenameExtension}, "")
if logDir != "" { dirName := logDir.getDirName()
pcpLogPrefix = strings.Join([]string{logDir, pcpLogPrefix}, "/") if dirName != "" {
pcpLogPrefix = strings.Join([]string{dirName, pcpLogPrefix}, "/")
} }
if logFile, err := os.Create(pcpLogPrefix); err != nil { if logFile, err := os.Create(pcpLogPrefix); err != nil {
log.Fatal("Unable to create logFile: ", err) log.Fatal("Unable to create logFile: ", err)

View file

@ -38,8 +38,9 @@ func (sLog *SchedPolicySwitchLogger) Log(logType int, level log.Level, logData l
func (sLog *SchedPolicySwitchLogger) SetLogFile(prefix string) { func (sLog *SchedPolicySwitchLogger) SetLogFile(prefix string) {
spsLogPrefix := strings.Join([]string{prefix, config.SPSConfig.FilenameExtension}, "") spsLogPrefix := strings.Join([]string{prefix, config.SPSConfig.FilenameExtension}, "")
if logDir != "" { dirName := logDir.getDirName()
spsLogPrefix = strings.Join([]string{logDir, spsLogPrefix}, "/") if dirName != "" {
spsLogPrefix = strings.Join([]string{dirName, spsLogPrefix}, "/")
} }
if logFile, err := os.Create(spsLogPrefix); err != nil { if logFile, err := os.Create(spsLogPrefix); err != nil {
log.Fatal("Unable to create logFile: ", err) log.Fatal("Unable to create logFile: ", err)

View file

@ -38,8 +38,9 @@ func (sLog *SchedTraceLogger) Log(logType int, level log.Level, logData log.Fiel
func (sLog *SchedTraceLogger) SetLogFile(prefix string) { func (sLog *SchedTraceLogger) SetLogFile(prefix string) {
schedTraceLogPrefix := strings.Join([]string{prefix, config.SchedTraceConfig.FilenameExtension}, "") schedTraceLogPrefix := strings.Join([]string{prefix, config.SchedTraceConfig.FilenameExtension}, "")
if logDir != "" { dirName := logDir.getDirName()
schedTraceLogPrefix = strings.Join([]string{logDir, schedTraceLogPrefix}, "/") if dirName != "" {
schedTraceLogPrefix = strings.Join([]string{dirName, schedTraceLogPrefix}, "/")
} }
if logFile, err := os.Create(schedTraceLogPrefix); err != nil { if logFile, err := os.Create(schedTraceLogPrefix); err != nil {
log.Fatal("Unable to create logFile: ", err) log.Fatal("Unable to create logFile: ", err)

View file

@ -38,8 +38,9 @@ func (sLog *SchedWindowLogger) Log(logType int, level log.Level, logData log.Fie
func (sLog *SchedWindowLogger) SetLogFile(prefix string) { func (sLog *SchedWindowLogger) SetLogFile(prefix string) {
schedWindowLogPrefix := strings.Join([]string{prefix, config.SchedWindowConfig.FilenameExtension}, "") schedWindowLogPrefix := strings.Join([]string{prefix, config.SchedWindowConfig.FilenameExtension}, "")
if logDir != "" { dirName := logDir.getDirName()
schedWindowLogPrefix = strings.Join([]string{logDir, schedWindowLogPrefix}, "/") if dirName != "" {
schedWindowLogPrefix = strings.Join([]string{dirName, schedWindowLogPrefix}, "/")
} }
if logFile, err := os.Create(schedWindowLogPrefix); err != nil { if logFile, err := os.Create(schedWindowLogPrefix); err != nil {
log.Fatal("Unable to create logFile: ", err) log.Fatal("Unable to create logFile: ", err)