refactored elektronLogging to logging

This commit is contained in:
Pradyumna Kaushik 2019-12-05 17:38:56 -05:00
parent bd8ddd1835
commit 3d201bf437
22 changed files with 32 additions and 32 deletions

54
logging/logger.go Normal file
View file

@ -0,0 +1,54 @@
package logging
import (
"os"
"strings"
"time"
log "github.com/sirupsen/logrus"
. "github.com/spdfg/elektron/logging/types"
)
var config LoggerConfig
var formatter ElektronFormatter
var ElektronLogger *loggerImpl
func BuildLogger(prefix string, logConfigFilename string) {
// Read configuration from yaml.
config.GetConfig(logConfigFilename)
// Create the log directory.
startTime := time.Now()
formatter.TimestampFormat = "2006-01-02 15:04:05"
formattedStartTime := startTime.Format("20060102150405")
logDir := &logDirectory{}
logDir.createLogDir(prefix, startTime)
// Instantiate the logrus instance.
prefix = strings.Join([]string{prefix, formattedStartTime}, "_")
logger := &log.Logger{
Out: os.Stderr,
Level: log.DebugLevel,
Formatter: &formatter,
}
// Create a chain of loggers.
b := &baseLogData{data: log.Fields{}}
head := &loggerImpl{baseLogData: b}
cLog := NewConsoleLogger(b, CONSOLE, prefix, logger, logDir)
pLog := NewPCPLogger(b, PCP, prefix, logger, logDir)
schedTraceLog := NewSchedTraceLogger(b, SCHED_TRACE, prefix, logger, logDir)
spsLog := NewSchedPolicySwitchLogger(b, SPS, prefix, logger, logDir)
schedWindowLog := NewSchedWindowLogger(b, SCHED_WINDOW, prefix, logger, logDir)
tskDistLog := NewClsfnTaskDistrOverheadLogger(b, CLSFN_TASKDISTR_OVERHEAD, prefix, logger, logDir)
head.setNext(cLog)
cLog.setNext(pLog)
pLog.setNext(schedTraceLog)
schedTraceLog.setNext(spsLog)
spsLog.setNext(schedWindowLog)
schedWindowLog.setNext(tskDistLog)
ElektronLogger = head
}