49 lines
1.2 KiB
Go
49 lines
1.2 KiB
Go
|
package elektronLogging
|
||
|
|
||
|
import (
|
||
|
"time"
|
||
|
"fmt"
|
||
|
"strconv"
|
||
|
. "github.com/spdfg/elektron/elektronLogging/types"
|
||
|
log "github.com/sirupsen/logrus"
|
||
|
)
|
||
|
|
||
|
var config LoggerConfig
|
||
|
var logger *log.Logger
|
||
|
var formatter ElektronFormatter
|
||
|
//var logDir string
|
||
|
|
||
|
func BuildLogger() *LoggerImpl {
|
||
|
|
||
|
config.GetConfig()
|
||
|
startTime := time.Now()
|
||
|
formatter.TimestampFormat = "2006-01-02 15:04:05"
|
||
|
GetLogDir(startTime, "_")
|
||
|
|
||
|
prefix := fmt.Sprintf("_%s%s%s%s%s",startTime.Month().String(),strconv.Itoa(startTime.Day()),
|
||
|
strconv.Itoa(startTime.Hour()),strconv.Itoa(startTime.Minute()),strconv.Itoa(startTime.Second()))
|
||
|
|
||
|
logger = log.New()
|
||
|
logger.SetFormatter(&formatter)
|
||
|
|
||
|
head := new(LoggerImpl)
|
||
|
cLog := NewConsoleLogger(CONSOLE,prefix)
|
||
|
pLog := NewPcpLogger(PCP,prefix)
|
||
|
schedTraceLog := NewSchedTraceLogger(SCHED_TRACE, prefix)
|
||
|
spsLog := NewSchedPolicySwitchLogger(SPS, prefix)
|
||
|
schedWindowLog := NewSchedWindowLogger(SCHED_WINDOW, prefix)
|
||
|
tskDistLog := NewClsfnTaskDistOverheadLogger(CLSFN_TASKDIST_OVERHEAD, prefix)
|
||
|
|
||
|
head.SetNext(cLog)
|
||
|
cLog.SetNext(pLog)
|
||
|
pLog.SetNext(schedTraceLog)
|
||
|
schedTraceLog.SetNext(spsLog)
|
||
|
|
||
|
spsLog.SetNext(schedWindowLog)
|
||
|
schedWindowLog.SetNext(tskDistLog)
|
||
|
|
||
|
return head
|
||
|
}
|
||
|
|
||
|
var ElektronLog = BuildLogger()
|