Used string join at neccesary places. Removed unused code

This commit is contained in:
balandi1 2019-11-20 16:11:33 -05:00
parent 4d15e59d4c
commit 20f2f1e8c5
12 changed files with 60 additions and 76 deletions

View file

@ -2,7 +2,6 @@ package elektronLogging
import ( import (
"bytes" "bytes"
"fmt"
"github.com/fatih/color" "github.com/fatih/color"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"strings" "strings"
@ -37,14 +36,12 @@ func (f ElektronFormatter) Format(entry *log.Entry) ([]byte, error) {
levelColor := f.getColor(entry) levelColor := f.getColor(entry)
level := levelColor.Sprintf("[%s]:", strings.ToUpper(entry.Level.String())) level := levelColor.Sprintf("[%s]:", strings.ToUpper(entry.Level.String()))
message := fmt.Sprintf("%s %s ", level, entry.Time.Format(f.TimestampFormat)) message := strings.Join([]string{level, entry.Time.Format(f.TimestampFormat), entry.Message, " "}, " ")
if entry.Message != "" {
message = fmt.Sprintf("%s %s %s ", level, entry.Time.Format(f.TimestampFormat), entry.Message)
}
var formattedFields []string var formattedFields []string
for key, value := range entry.Data { for key, value := range entry.Data {
formattedFields = append(formattedFields, formattedFields = append(formattedFields,
strings.Join([]string{key, fmt.Sprintf("%s", value)}, "=")) strings.Join([]string{key, value.(string)}, "="))
} }
b.WriteString(message) b.WriteString(message)

View file

@ -3,6 +3,7 @@ package elektronLogging
import ( import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"os" "os"
"strings"
) )
type ClsfnTaskDistOverheadLogger struct { type ClsfnTaskDistOverheadLogger struct {
@ -10,7 +11,7 @@ type ClsfnTaskDistOverheadLogger struct {
} }
func NewClsfnTaskDistOverheadLogger(logType int, prefix string) *ClsfnTaskDistOverheadLogger { func NewClsfnTaskDistOverheadLogger(logType int, prefix string) *ClsfnTaskDistOverheadLogger {
cLog := new(ClsfnTaskDistOverheadLogger) cLog := &ClsfnTaskDistOverheadLogger{}
cLog.Type = logType cLog.Type = logType
cLog.SetLogFile(prefix) cLog.SetLogFile(prefix)
return cLog return cLog
@ -36,9 +37,9 @@ func (cLog *ClsfnTaskDistOverheadLogger) Log(logType int, level log.Level, logDa
func (cLog *ClsfnTaskDistOverheadLogger) SetLogFile(prefix string) { func (cLog *ClsfnTaskDistOverheadLogger) SetLogFile(prefix string) {
tskDistLogPrefix := prefix + config.TaskDistConfig.FilenameExtension tskDistLogPrefix := strings.Join([]string{prefix, config.TaskDistConfig.FilenameExtension}, "")
if logDir != "" { if logDir != "" {
tskDistLogPrefix = logDir + "/" + tskDistLogPrefix tskDistLogPrefix = strings.Join([]string{logDir, 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

@ -3,6 +3,7 @@ package elektronLogging
import ( import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"os" "os"
"strings"
) )
type ConsoleLogger struct { type ConsoleLogger struct {
@ -10,7 +11,7 @@ type ConsoleLogger struct {
} }
func NewConsoleLogger(logType int, prefix string) *ConsoleLogger { func NewConsoleLogger(logType int, prefix string) *ConsoleLogger {
cLog := new(ConsoleLogger) cLog := &ConsoleLogger{}
cLog.Type = logType cLog.Type = logType
cLog.SetLogFile(prefix) cLog.SetLogFile(prefix)
return cLog return cLog
@ -18,7 +19,6 @@ func NewConsoleLogger(logType int, prefix string) *ConsoleLogger {
func (cLog *ConsoleLogger) Log(logType int, level log.Level, logData log.Fields, message string) { func (cLog *ConsoleLogger) Log(logType int, level log.Level, logData log.Fields, message string) {
if logType <= cLog.Type { if logType <= cLog.Type {
//logFields := cloneFields(logData)
logger.SetLevel(level) logger.SetLevel(level)
logger.SetOutput(os.Stdout) logger.SetOutput(os.Stdout)
@ -34,9 +34,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 := prefix + config.ConsoleConfig.FilenameExtension consoleLogPrefix := strings.Join([]string{prefix, config.ConsoleConfig.FilenameExtension}, "")
if logDir != "" { if logDir != "" {
consoleLogPrefix = logDir + "/" + consoleLogPrefix consoleLogPrefix = strings.Join([]string{logDir, 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

@ -4,6 +4,7 @@ import (
logrus "github.com/sirupsen/logrus" logrus "github.com/sirupsen/logrus"
"os" "os"
"strconv" "strconv"
"strings"
"time" "time"
) )
@ -16,18 +17,13 @@ func GetLogDir(startTime time.Time, prefix string) {
} }
func createLogDir(prefix string, startTime time.Time) string { func createLogDir(prefix string, startTime time.Time) string {
// Creating directory to store all logs for this run // Creating directory to store all logs for this run
logDirName := "./" + prefix + strconv.Itoa(startTime.Year()) logDirName := strings.Join([]string{"./", prefix, strconv.Itoa(startTime.Year())}, "")
logDirName += "-" logDirName = strings.Join([]string{logDirName, startTime.Month().String(), strconv.Itoa(startTime.Day())}, "-")
logDirName += startTime.Month().String() logDirName = strings.Join([]string{logDirName, strconv.Itoa(startTime.Hour())}, "_")
logDirName += "-" logDirName = strings.Join([]string{logDirName, strconv.Itoa(startTime.Minute()), strconv.Itoa(startTime.Second())}, "-")
logDirName += strconv.Itoa(startTime.Day())
logDirName += "_"
logDirName += strconv.Itoa(startTime.Hour())
logDirName += "-"
logDirName += strconv.Itoa(startTime.Minute())
logDirName += "-"
logDirName += strconv.Itoa(startTime.Second())
if _, err := os.Stat(logDirName); os.IsNotExist(err) { if _, err := os.Stat(logDirName); os.IsNotExist(err) {
os.Mkdir(logDirName, 0755) os.Mkdir(logDirName, 0755)
} else { } else {

View file

@ -1,18 +1,18 @@
package elektronLogging package elektronLogging
import ( import (
"fmt"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
. "github.com/spdfg/elektron/elektronLogging/types" . "github.com/spdfg/elektron/elektronLogging/types"
"strconv" "strings"
"time" "time"
) )
var config LoggerConfig var config LoggerConfig
var logger *log.Logger var logger *log.Logger
var formatter ElektronFormatter var formatter ElektronFormatter
var ElektronLog *LoggerImpl
func BuildLogger() *LoggerImpl { func BuildLogger(prefix string) {
// read configuration from yaml // read configuration from yaml
config.GetConfig() config.GetConfig()
@ -20,17 +20,17 @@ func BuildLogger() *LoggerImpl {
// create the log directory // create the log directory
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")
GetLogDir(startTime, "_") GetLogDir(startTime, "_")
prefix := fmt.Sprintf("_%d%d%s%s%s%s", startTime.Year(), startTime.Month(), strconv.Itoa(startTime.Day()), prefix = strings.Join([]string{prefix, formattedStartTime}, "_")
strconv.Itoa(startTime.Hour()), strconv.Itoa(startTime.Minute()), strconv.Itoa(startTime.Second()))
//create a single logrus instance and set its formatter to ElektronFormatter //create a single logrus instance and set its formatter to ElektronFormatter
logger = log.New() logger = log.New()
logger.SetFormatter(&formatter) logger.SetFormatter(&formatter)
// create a chain of loggers // create a chain of loggers
head := new(LoggerImpl) head := &LoggerImpl{}
cLog := NewConsoleLogger(CONSOLE, prefix) cLog := NewConsoleLogger(CONSOLE, prefix)
pLog := NewPcpLogger(PCP, prefix) pLog := NewPcpLogger(PCP, prefix)
schedTraceLog := NewSchedTraceLogger(SCHED_TRACE, prefix) schedTraceLog := NewSchedTraceLogger(SCHED_TRACE, prefix)
@ -45,7 +45,5 @@ func BuildLogger() *LoggerImpl {
spsLog.SetNext(schedWindowLog) spsLog.SetNext(schedWindowLog)
schedWindowLog.SetNext(tskDistLog) schedWindowLog.SetNext(tskDistLog)
return head ElektronLog = head
} }
var ElektronLog = BuildLogger()

View file

@ -1,9 +1,8 @@
package elektronLogging package elektronLogging
import ( import (
"os"
//data "github.com/spdfg/elektron/elektronLogging/data"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"os"
) )
type Logger interface { type Logger interface {
@ -27,11 +26,3 @@ func (l *LoggerImpl) Log(logType int, level log.Level, logData log.Fields, messa
l.next.Log(logType, level, logData, message) l.next.Log(logType, level, logData, message)
} }
} }
/*func cloneFields(logData data.LogData) log.Fields {
var newMap = make(log.Fields)
for k,v := range logData {
newMap[k] = v
}
return newMap
}*/

View file

@ -3,6 +3,7 @@ package elektronLogging
import ( import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"os" "os"
"strings"
) )
type PcpLogger struct { type PcpLogger struct {
@ -10,7 +11,7 @@ type PcpLogger struct {
} }
func NewPcpLogger(logType int, prefix string) *PcpLogger { func NewPcpLogger(logType int, prefix string) *PcpLogger {
pLog := new(PcpLogger) pLog := &PcpLogger{}
pLog.Type = logType pLog.Type = logType
pLog.SetLogFile(prefix) pLog.SetLogFile(prefix)
return pLog return pLog
@ -36,9 +37,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 := prefix + config.PCPConfig.FilenameExtension pcpLogPrefix := strings.Join([]string{prefix, config.PCPConfig.FilenameExtension}, "")
if logDir != "" { if logDir != "" {
pcpLogPrefix = logDir + "/" + pcpLogPrefix pcpLogPrefix = strings.Join([]string{logDir, 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

@ -3,6 +3,7 @@ package elektronLogging
import ( import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"os" "os"
"strings"
) )
type SchedPolicySwitchLogger struct { type SchedPolicySwitchLogger struct {
@ -10,7 +11,7 @@ type SchedPolicySwitchLogger struct {
} }
func NewSchedPolicySwitchLogger(logType int, prefix string) *SchedPolicySwitchLogger { func NewSchedPolicySwitchLogger(logType int, prefix string) *SchedPolicySwitchLogger {
sLog := new(SchedPolicySwitchLogger) sLog := &SchedPolicySwitchLogger{}
sLog.Type = logType sLog.Type = logType
sLog.SetLogFile(prefix) sLog.SetLogFile(prefix)
return sLog return sLog
@ -36,9 +37,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 := prefix + config.SPSConfig.FilenameExtension spsLogPrefix := strings.Join([]string{prefix, config.SPSConfig.FilenameExtension}, "")
if logDir != "" { if logDir != "" {
spsLogPrefix = logDir + "/" + spsLogPrefix spsLogPrefix = strings.Join([]string{logDir, 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

@ -3,6 +3,7 @@ package elektronLogging
import ( import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"os" "os"
"strings"
) )
type SchedTraceLogger struct { type SchedTraceLogger struct {
@ -10,7 +11,7 @@ type SchedTraceLogger struct {
} }
func NewSchedTraceLogger(logType int, prefix string) *SchedTraceLogger { func NewSchedTraceLogger(logType int, prefix string) *SchedTraceLogger {
sLog := new(SchedTraceLogger) sLog := &SchedTraceLogger{}
sLog.Type = logType sLog.Type = logType
sLog.SetLogFile(prefix) sLog.SetLogFile(prefix)
return sLog return sLog
@ -36,9 +37,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 := prefix + config.SchedTraceConfig.FilenameExtension schedTraceLogPrefix := strings.Join([]string{prefix, config.SchedTraceConfig.FilenameExtension}, "")
if logDir != "" { if logDir != "" {
schedTraceLogPrefix = logDir + "/" + schedTraceLogPrefix schedTraceLogPrefix = strings.Join([]string{logDir, 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

@ -3,6 +3,7 @@ package elektronLogging
import ( import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"os" "os"
"strings"
) )
type SchedWindowLogger struct { type SchedWindowLogger struct {
@ -10,7 +11,7 @@ type SchedWindowLogger struct {
} }
func NewSchedWindowLogger(logType int, prefix string) *SchedWindowLogger { func NewSchedWindowLogger(logType int, prefix string) *SchedWindowLogger {
sLog := new(SchedWindowLogger) sLog := &SchedWindowLogger{}
sLog.Type = logType sLog.Type = logType
sLog.SetLogFile(prefix) sLog.SetLogFile(prefix)
return sLog return sLog
@ -20,6 +21,7 @@ func (sLog *SchedWindowLogger) Log(logType int, level log.Level, logData log.Fie
if sLog.Type == logType { if sLog.Type == logType {
logger.SetLevel(level) logger.SetLevel(level)
if sLog.AllowOnConsole { if sLog.AllowOnConsole {
logger.SetOutput(os.Stdout) logger.SetOutput(os.Stdout)
logger.WithFields(logData).Println(message) logger.WithFields(logData).Println(message)
@ -35,9 +37,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 := prefix + config.SchedWindowConfig.FilenameExtension schedWindowLogPrefix := strings.Join([]string{prefix, config.SchedWindowConfig.FilenameExtension}, "")
if logDir != "" { if logDir != "" {
schedWindowLogPrefix = logDir + "/" + schedWindowLogPrefix schedWindowLogPrefix = strings.Join([]string{logDir, 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)

View file

@ -2,13 +2,13 @@ package elektronLogging
const ( const (
ERROR = iota ERROR = iota
WARNING = iota WARNING
GENERAL = iota GENERAL
SUCCESS = iota SUCCESS
CONSOLE = iota CONSOLE
PCP = iota PCP
SCHED_TRACE = iota SCHED_TRACE
SPS = iota SPS
SCHED_WINDOW = iota SCHED_WINDOW
CLSFN_TASKDIST_OVERHEAD = iota CLSFN_TASKDIST_OVERHEAD
) )

View file

@ -21,10 +21,6 @@ package main // import github.com/spdfg/elektron
import ( import (
"flag" "flag"
"fmt" "fmt"
"os"
"os/signal"
"time"
"github.com/golang/protobuf/proto" "github.com/golang/protobuf/proto"
mesos "github.com/mesos/mesos-go/api/v0/mesosproto" mesos "github.com/mesos/mesos-go/api/v0/mesosproto"
sched "github.com/mesos/mesos-go/api/v0/scheduler" sched "github.com/mesos/mesos-go/api/v0/scheduler"
@ -35,6 +31,10 @@ import (
"github.com/spdfg/elektron/pcp" "github.com/spdfg/elektron/pcp"
"github.com/spdfg/elektron/powerCap" "github.com/spdfg/elektron/powerCap"
"github.com/spdfg/elektron/schedulers" "github.com/spdfg/elektron/schedulers"
"os"
"os/signal"
"strings"
"time"
) )
var master = flag.String("master", "", "Location of leading Mesos master -- <mesos-master>:<port>") var master = flag.String("master", "", "Location of leading Mesos master -- <mesos-master>:<port>")
@ -116,11 +116,6 @@ func main() {
pcpLog := make(chan struct{}) pcpLog := make(chan struct{})
recordPCP := false recordPCP := false
// Logging channels.
// These channels are used by the framework to log messages.
// The channels are used to send the type of log message and the message string.
//schedOptions = append(schedOptions, schedulers.WithLoggingChannels(logMType, logMsg))
// Shutdown indicator channels. // Shutdown indicator channels.
// These channels are used to notify, // These channels are used to notify,
// 1. scheduling is complete. // 1. scheduling is complete.
@ -225,9 +220,10 @@ func main() {
} }
// Checking if prefix contains any special characters. // Checking if prefix contains any special characters.
/*if strings.Contains(*pcplogPrefix, "/") { if strings.Contains(*pcplogPrefix, "/") {
log.Fatal("log file prefix should not contain '/'.") log.Fatal("log file prefix should not contain '/'.")
}*/ }
elektronLogging.BuildLogger(*pcplogPrefix)
// Starting PCP logging. // Starting PCP logging.
if noPowercap { if noPowercap {