diff --git a/elektronLogging/clsfnTaskDistOverheadLogger.go b/elektronLogging/clsfnTaskDistOverheadLogger.go
index 6565211..c3f15cb 100644
--- a/elektronLogging/clsfnTaskDistOverheadLogger.go
+++ b/elektronLogging/clsfnTaskDistOverheadLogger.go
@@ -12,25 +12,26 @@ type ClsfnTaskDistrOverheadLogger struct {
 	LoggerImpl
 }
 
-func NewClsfnTaskDistrOverheadLogger(b *baseLogData, logType int, prefix string) *ClsfnTaskDistrOverheadLogger {
+func NewClsfnTaskDistrOverheadLogger(b *baseLogData, logType int, prefix string, logger *log.Logger) *ClsfnTaskDistrOverheadLogger {
 	cLog := &ClsfnTaskDistrOverheadLogger{}
-	cLog.Type = logType
+	cLog.logType = logType
 	cLog.CreateLogFile(prefix)
 	cLog.next = nil
 	cLog.baseLogData = b
+	cLog.logger = logger
 	return cLog
 }
 
 func (cLog ClsfnTaskDistrOverheadLogger) Log(logType int, level log.Level, message string) {
-	if cLog.Type == logType {
+	if cLog.logType == logType {
 		if config.TaskDistrConfig.Enabled {
-			if cLog.AllowOnConsole {
-				logger.SetOutput(os.Stdout)
-				logger.WithFields(cLog.data).Log(level, message)
+			if cLog.allowOnConsole {
+				cLog.logger.SetOutput(os.Stdout)
+				cLog.logger.WithFields(cLog.data).Log(level, message)
 			}
 
-			logger.SetOutput(cLog.LogFile)
-			logger.WithFields(cLog.data).Log(level, message)
+			cLog.logger.SetOutput(cLog.logFile)
+			cLog.logger.WithFields(cLog.data).Log(level, message)
 		}
 	}
 	// Forwarding to next logger
@@ -43,15 +44,15 @@ func (cLog ClsfnTaskDistrOverheadLogger) Log(logType int, level log.Level, messa
 }
 
 func (cLog ClsfnTaskDistrOverheadLogger) Logf(logType int, level log.Level, msgFmtString string, args ...interface{}) {
-	if cLog.Type == logType {
+	if cLog.logType == logType {
 		if config.TaskDistrConfig.Enabled {
-			if cLog.AllowOnConsole {
-				logger.SetOutput(os.Stdout)
-				logger.WithFields(cLog.data).Logf(level, msgFmtString, args...)
+			if cLog.allowOnConsole {
+				cLog.logger.SetOutput(os.Stdout)
+				cLog.logger.WithFields(cLog.data).Logf(level, msgFmtString, args...)
 			}
 
-			logger.SetOutput(cLog.LogFile)
-			logger.WithFields(cLog.data).Logf(level, msgFmtString, args...)
+			cLog.logger.SetOutput(cLog.logFile)
+			cLog.logger.WithFields(cLog.data).Logf(level, msgFmtString, args...)
 		}
 	}
 	if cLog.next != nil {
@@ -71,8 +72,8 @@ func (cLog *ClsfnTaskDistrOverheadLogger) CreateLogFile(prefix string) {
 			if logFile, err := os.Create(filepath.Join(dirName, filename)); err != nil {
 				log.Fatal("Unable to create logFile: ", err)
 			} else {
-				cLog.LogFile = logFile
-				cLog.AllowOnConsole = config.TaskDistrConfig.AllowOnConsole
+				cLog.logFile = logFile
+				cLog.allowOnConsole = config.TaskDistrConfig.AllowOnConsole
 			}
 		}
 	}
diff --git a/elektronLogging/consoleLogger.go b/elektronLogging/consoleLogger.go
index 64b20ea..9091283 100644
--- a/elektronLogging/consoleLogger.go
+++ b/elektronLogging/consoleLogger.go
@@ -12,22 +12,23 @@ type ConsoleLogger struct {
 	LoggerImpl
 }
 
-func NewConsoleLogger(b *baseLogData, logType int, prefix string) *ConsoleLogger {
+func NewConsoleLogger(b *baseLogData, logType int, prefix string, logger *log.Logger) *ConsoleLogger {
 	cLog := &ConsoleLogger{}
-	cLog.Type = logType
+	cLog.logType = logType
 	cLog.CreateLogFile(prefix)
 	cLog.next = nil
 	cLog.baseLogData = b
+	cLog.logger = logger
 	return cLog
 }
 func (cLog ConsoleLogger) Log(logType int, level log.Level, message string) {
-	if logType <= cLog.Type {
+	if logType <= cLog.logType {
 		if config.ConsoleConfig.Enabled {
-			logger.SetOutput(os.Stdout)
-			logger.WithFields(cLog.data).Log(level, message)
+			cLog.logger.SetOutput(os.Stdout)
+			cLog.logger.WithFields(cLog.data).Log(level, message)
 
-			logger.SetOutput(cLog.LogFile)
-			logger.WithFields(cLog.data).Log(level, message)
+			cLog.logger.SetOutput(cLog.logFile)
+			cLog.logger.WithFields(cLog.data).Log(level, message)
 		}
 	}
 	// Forwarding to next logger.
@@ -40,13 +41,13 @@ func (cLog ConsoleLogger) Log(logType int, level log.Level, message string) {
 }
 
 func (cLog ConsoleLogger) Logf(logType int, level log.Level, msgFmtString string, args ...interface{}) {
-	if logType <= cLog.Type {
+	if logType <= cLog.logType {
 		if config.ConsoleConfig.Enabled {
-			logger.SetOutput(os.Stdout)
-			logger.WithFields(cLog.data).Logf(level, msgFmtString, args...)
+			cLog.logger.SetOutput(os.Stdout)
+			cLog.logger.WithFields(cLog.data).Logf(level, msgFmtString, args...)
 
-			logger.SetOutput(cLog.LogFile)
-			logger.WithFields(cLog.data).Logf(level, msgFmtString, args...)
+			cLog.logger.SetOutput(cLog.logFile)
+			cLog.logger.WithFields(cLog.data).Logf(level, msgFmtString, args...)
 		}
 	}
 	if cLog.next != nil {
@@ -66,8 +67,8 @@ func (cLog *ConsoleLogger) CreateLogFile(prefix string) {
 			if logFile, err := os.Create(filepath.Join(dirName, filename)); err != nil {
 				log.Fatal("Unable to create logFile: ", err)
 			} else {
-				cLog.LogFile = logFile
-				cLog.AllowOnConsole = config.ConsoleConfig.AllowOnConsole
+				cLog.logFile = logFile
+				cLog.allowOnConsole = config.ConsoleConfig.AllowOnConsole
 			}
 		}
 	}
diff --git a/elektronLogging/logger.go b/elektronLogging/logger.go
index bdf07ea..7bcf234 100644
--- a/elektronLogging/logger.go
+++ b/elektronLogging/logger.go
@@ -10,7 +10,6 @@ import (
 )
 
 var config LoggerConfig
-var logger *log.Logger
 var formatter ElektronFormatter
 var ElektronLogger *LoggerImpl
 var logDir logDirectory
@@ -28,7 +27,7 @@ func BuildLogger(prefix string, logConfigFilename string) {
 
 	// Instantiate the logrus instance.
 	prefix = strings.Join([]string{prefix, formattedStartTime}, "_")
-	logger = &log.Logger{
+	logger := &log.Logger{
 		Out:       os.Stderr,
 		Level:     log.DebugLevel,
 		Formatter: &formatter,
@@ -37,12 +36,12 @@ func BuildLogger(prefix string, logConfigFilename string) {
 	// Create a chain of loggers.
 	b := &baseLogData{data: log.Fields{}}
 	head := &LoggerImpl{baseLogData: b}
-	cLog := NewConsoleLogger(b, CONSOLE, prefix)
-	pLog := NewPCPLogger(b, PCP, prefix)
-	schedTraceLog := NewSchedTraceLogger(b, SCHED_TRACE, prefix)
-	spsLog := NewSchedPolicySwitchLogger(b, SPS, prefix)
-	schedWindowLog := NewSchedWindowLogger(b, SCHED_WINDOW, prefix)
-	tskDistLog := NewClsfnTaskDistrOverheadLogger(b, CLSFN_TASKDISTR_OVERHEAD, prefix)
+	cLog := NewConsoleLogger(b, CONSOLE, prefix, logger)
+	pLog := NewPCPLogger(b, PCP, prefix, logger)
+	schedTraceLog := NewSchedTraceLogger(b, SCHED_TRACE, prefix, logger)
+	spsLog := NewSchedPolicySwitchLogger(b, SPS, prefix, logger)
+	schedWindowLog := NewSchedWindowLogger(b, SCHED_WINDOW, prefix, logger)
+	tskDistLog := NewClsfnTaskDistrOverheadLogger(b, CLSFN_TASKDISTR_OVERHEAD, prefix, logger)
 
 	head.SetNext(cLog)
 	cLog.SetNext(pLog)
diff --git a/elektronLogging/loggerChain.go b/elektronLogging/loggerChain.go
index bbf41fc..d4f6d38 100644
--- a/elektronLogging/loggerChain.go
+++ b/elektronLogging/loggerChain.go
@@ -16,10 +16,11 @@ type baseLogData struct {
 }
 type LoggerImpl struct {
 	*baseLogData
-	Type           int
-	AllowOnConsole bool
-	LogFile        *os.File
+	logType        int
+	allowOnConsole bool
+	logFile        *os.File
 	next           Logger
+	logger         *log.Logger
 }
 
 func (l *LoggerImpl) WithFields(logData log.Fields) *LoggerImpl {
diff --git a/elektronLogging/pcpLogger.go b/elektronLogging/pcpLogger.go
index 192eb88..c7a498f 100644
--- a/elektronLogging/pcpLogger.go
+++ b/elektronLogging/pcpLogger.go
@@ -12,25 +12,26 @@ type PCPLogger struct {
 	LoggerImpl
 }
 
-func NewPCPLogger(b *baseLogData, logType int, prefix string) *PCPLogger {
+func NewPCPLogger(b *baseLogData, logType int, prefix string, logger *log.Logger) *PCPLogger {
 	pLog := &PCPLogger{}
-	pLog.Type = logType
+	pLog.logType = logType
 	pLog.CreateLogFile(prefix)
 	pLog.next = nil
 	pLog.baseLogData = b
+	pLog.logger = logger
 	return pLog
 }
 
 func (pLog PCPLogger) Log(logType int, level log.Level, message string) {
-	if pLog.Type == logType {
+	if pLog.logType == logType {
 		if config.PCPConfig.Enabled {
-			if pLog.AllowOnConsole {
-				logger.SetOutput(os.Stdout)
-				logger.WithFields(pLog.data).Log(level, message)
+			if pLog.allowOnConsole {
+				pLog.logger.SetOutput(os.Stdout)
+				pLog.logger.WithFields(pLog.data).Log(level, message)
 			}
 
-			logger.SetOutput(pLog.LogFile)
-			logger.WithFields(pLog.data).Log(level, message)
+			pLog.logger.SetOutput(pLog.logFile)
+			pLog.logger.WithFields(pLog.data).Log(level, message)
 		}
 	}
 	if pLog.next != nil {
@@ -42,15 +43,15 @@ func (pLog PCPLogger) Log(logType int, level log.Level, message string) {
 }
 
 func (pLog PCPLogger) Logf(logType int, level log.Level, msgFmtString string, args ...interface{}) {
-	if pLog.Type == logType {
+	if pLog.logType == logType {
 		if config.PCPConfig.Enabled {
-			if pLog.AllowOnConsole {
-				logger.SetOutput(os.Stdout)
-				logger.WithFields(pLog.data).Logf(level, msgFmtString, args...)
+			if pLog.allowOnConsole {
+				pLog.logger.SetOutput(os.Stdout)
+				pLog.logger.WithFields(pLog.data).Logf(level, msgFmtString, args...)
 			}
 
-			logger.SetOutput(pLog.LogFile)
-			logger.WithFields(pLog.data).Logf(level, msgFmtString, args...)
+			pLog.logger.SetOutput(pLog.logFile)
+			pLog.logger.WithFields(pLog.data).Logf(level, msgFmtString, args...)
 		}
 	}
 	// Forwarding to next logger
@@ -70,8 +71,8 @@ func (pLog *PCPLogger) CreateLogFile(prefix string) {
 			if logFile, err := os.Create(filepath.Join(dirName, filename)); err != nil {
 				log.Fatal("Unable to create logFile: ", err)
 			} else {
-				pLog.LogFile = logFile
-				pLog.AllowOnConsole = config.PCPConfig.AllowOnConsole
+				pLog.logFile = logFile
+				pLog.allowOnConsole = config.PCPConfig.AllowOnConsole
 			}
 		}
 	}
diff --git a/elektronLogging/schedPolicySwitchLogger.go b/elektronLogging/schedPolicySwitchLogger.go
index 8d85d2f..457889a 100644
--- a/elektronLogging/schedPolicySwitchLogger.go
+++ b/elektronLogging/schedPolicySwitchLogger.go
@@ -12,25 +12,26 @@ type SchedPolicySwitchLogger struct {
 	LoggerImpl
 }
 
-func NewSchedPolicySwitchLogger(b *baseLogData, logType int, prefix string) *SchedPolicySwitchLogger {
+func NewSchedPolicySwitchLogger(b *baseLogData, logType int, prefix string, logger *log.Logger) *SchedPolicySwitchLogger {
 	sLog := &SchedPolicySwitchLogger{}
-	sLog.Type = logType
+	sLog.logType = logType
 	sLog.CreateLogFile(prefix)
 	sLog.next = nil
 	sLog.baseLogData = b
+	sLog.logger = logger
 	return sLog
 }
 
 func (sLog SchedPolicySwitchLogger) Log(logType int, level log.Level, message string) {
-	if sLog.Type == logType {
+	if sLog.logType == logType {
 		if config.SPSConfig.Enabled {
-			if sLog.AllowOnConsole {
-				logger.SetOutput(os.Stdout)
-				logger.WithFields(sLog.data).Log(level, message)
+			if sLog.allowOnConsole {
+				sLog.logger.SetOutput(os.Stdout)
+				sLog.logger.WithFields(sLog.data).Log(level, message)
 			}
 
-			logger.SetOutput(sLog.LogFile)
-			logger.WithFields(sLog.data).Log(level, message)
+			sLog.logger.SetOutput(sLog.logFile)
+			sLog.logger.WithFields(sLog.data).Log(level, message)
 		}
 	}
 	if sLog.next != nil {
@@ -42,15 +43,15 @@ func (sLog SchedPolicySwitchLogger) Log(logType int, level log.Level, message st
 }
 
 func (sLog SchedPolicySwitchLogger) Logf(logType int, level log.Level, msgFmtString string, args ...interface{}) {
-	if sLog.Type == logType {
+	if sLog.logType == logType {
 		if config.SPSConfig.Enabled {
-			if sLog.AllowOnConsole {
-				logger.SetOutput(os.Stdout)
-				logger.WithFields(sLog.data).Logf(level, msgFmtString, args...)
+			if sLog.allowOnConsole {
+				sLog.logger.SetOutput(os.Stdout)
+				sLog.logger.WithFields(sLog.data).Logf(level, msgFmtString, args...)
 			}
 
-			logger.SetOutput(sLog.LogFile)
-			logger.WithFields(sLog.data).Logf(level, msgFmtString, args...)
+			sLog.logger.SetOutput(sLog.logFile)
+			sLog.logger.WithFields(sLog.data).Logf(level, msgFmtString, args...)
 		}
 	}
 	// Forwarding to next logger
@@ -70,8 +71,8 @@ func (sLog *SchedPolicySwitchLogger) CreateLogFile(prefix string) {
 			if logFile, err := os.Create(filepath.Join(dirName, filename)); err != nil {
 				log.Fatal("Unable to create logFile: ", err)
 			} else {
-				sLog.LogFile = logFile
-				sLog.AllowOnConsole = config.SPSConfig.AllowOnConsole
+				sLog.logFile = logFile
+				sLog.allowOnConsole = config.SPSConfig.AllowOnConsole
 			}
 		}
 	}
diff --git a/elektronLogging/schedTraceLogger.go b/elektronLogging/schedTraceLogger.go
index 838eff7..7ac1167 100644
--- a/elektronLogging/schedTraceLogger.go
+++ b/elektronLogging/schedTraceLogger.go
@@ -12,25 +12,26 @@ type SchedTraceLogger struct {
 	LoggerImpl
 }
 
-func NewSchedTraceLogger(b *baseLogData, logType int, prefix string) *SchedTraceLogger {
+func NewSchedTraceLogger(b *baseLogData, logType int, prefix string, logger *log.Logger) *SchedTraceLogger {
 	sLog := &SchedTraceLogger{}
-	sLog.Type = logType
+	sLog.logType = logType
 	sLog.CreateLogFile(prefix)
 	sLog.next = nil
 	sLog.baseLogData = b
+	sLog.logger = logger
 	return sLog
 }
 
 func (sLog SchedTraceLogger) Log(logType int, level log.Level, message string) {
-	if sLog.Type == logType {
+	if sLog.logType == logType {
 		if config.SchedTraceConfig.Enabled {
-			if sLog.AllowOnConsole {
-				logger.SetOutput(os.Stdout)
-				logger.WithFields(sLog.data).Log(level, message)
+			if sLog.allowOnConsole {
+				sLog.logger.SetOutput(os.Stdout)
+				sLog.logger.WithFields(sLog.data).Log(level, message)
 			}
 
-			logger.SetOutput(sLog.LogFile)
-			logger.WithFields(sLog.data).Log(level, message)
+			sLog.logger.SetOutput(sLog.logFile)
+			sLog.logger.WithFields(sLog.data).Log(level, message)
 		}
 	}
 	if sLog.next != nil {
@@ -42,15 +43,15 @@ func (sLog SchedTraceLogger) Log(logType int, level log.Level, message string) {
 }
 
 func (sLog SchedTraceLogger) Logf(logType int, level log.Level, msgFmtString string, args ...interface{}) {
-	if sLog.Type == logType {
+	if sLog.logType == logType {
 		if config.SchedTraceConfig.Enabled {
-			if sLog.AllowOnConsole {
-				logger.SetOutput(os.Stdout)
-				logger.WithFields(sLog.data).Logf(level, msgFmtString, args...)
+			if sLog.allowOnConsole {
+				sLog.logger.SetOutput(os.Stdout)
+				sLog.logger.WithFields(sLog.data).Logf(level, msgFmtString, args...)
 			}
 
-			logger.SetOutput(sLog.LogFile)
-			logger.WithFields(sLog.data).Logf(level, msgFmtString, args...)
+			sLog.logger.SetOutput(sLog.logFile)
+			sLog.logger.WithFields(sLog.data).Logf(level, msgFmtString, args...)
 		}
 	}
 	// Forwarding to next logger
@@ -70,8 +71,8 @@ func (sLog *SchedTraceLogger) CreateLogFile(prefix string) {
 			if logFile, err := os.Create(filepath.Join(dirName, filename)); err != nil {
 				log.Fatal("Unable to create logFile: ", err)
 			} else {
-				sLog.LogFile = logFile
-				sLog.AllowOnConsole = config.SchedTraceConfig.AllowOnConsole
+				sLog.logFile = logFile
+				sLog.allowOnConsole = config.SchedTraceConfig.AllowOnConsole
 			}
 		}
 	}
diff --git a/elektronLogging/schedWindowLogger.go b/elektronLogging/schedWindowLogger.go
index e8d6958..ce79483 100644
--- a/elektronLogging/schedWindowLogger.go
+++ b/elektronLogging/schedWindowLogger.go
@@ -12,25 +12,26 @@ type SchedWindowLogger struct {
 	LoggerImpl
 }
 
-func NewSchedWindowLogger(b *baseLogData, logType int, prefix string) *SchedWindowLogger {
+func NewSchedWindowLogger(b *baseLogData, logType int, prefix string, logger *log.Logger) *SchedWindowLogger {
 	sLog := &SchedWindowLogger{}
-	sLog.Type = logType
+	sLog.logType = logType
 	sLog.CreateLogFile(prefix)
 	sLog.next = nil
 	sLog.baseLogData = b
+	sLog.logger = logger
 	return sLog
 }
 
 func (sLog SchedWindowLogger) Log(logType int, level log.Level, message string) {
-	if sLog.Type == logType {
+	if sLog.logType == logType {
 		if config.SchedWindowConfig.Enabled {
-			if sLog.AllowOnConsole {
-				logger.SetOutput(os.Stdout)
-				logger.WithFields(sLog.data).Log(level, message)
+			if sLog.allowOnConsole {
+				sLog.logger.SetOutput(os.Stdout)
+				sLog.logger.WithFields(sLog.data).Log(level, message)
 			}
 
-			logger.SetOutput(sLog.LogFile)
-			logger.WithFields(sLog.data).Log(level, message)
+			sLog.logger.SetOutput(sLog.logFile)
+			sLog.logger.WithFields(sLog.data).Log(level, message)
 		}
 	}
 	// Forwarding to next logger
@@ -43,15 +44,15 @@ func (sLog SchedWindowLogger) Log(logType int, level log.Level, message string)
 }
 
 func (sLog SchedWindowLogger) Logf(logType int, level log.Level, msgFmtString string, args ...interface{}) {
-	if sLog.Type == logType {
+	if sLog.logType == logType {
 		if config.SchedWindowConfig.Enabled {
-			if sLog.AllowOnConsole {
-				logger.SetOutput(os.Stdout)
-				logger.WithFields(sLog.data).Logf(level, msgFmtString, args...)
+			if sLog.allowOnConsole {
+				sLog.logger.SetOutput(os.Stdout)
+				sLog.logger.WithFields(sLog.data).Logf(level, msgFmtString, args...)
 			}
 
-			logger.SetOutput(sLog.LogFile)
-			logger.WithFields(sLog.data).Logf(level, msgFmtString, args...)
+			sLog.logger.SetOutput(sLog.logFile)
+			sLog.logger.WithFields(sLog.data).Logf(level, msgFmtString, args...)
 		}
 	}
 	if sLog.next != nil {
@@ -70,8 +71,8 @@ func (sLog *SchedWindowLogger) CreateLogFile(prefix string) {
 			if logFile, err := os.Create(filepath.Join(dirName, filename)); err != nil {
 				log.Fatal("Unable to create logFile: ", err)
 			} else {
-				sLog.LogFile = logFile
-				sLog.AllowOnConsole = config.SchedWindowConfig.AllowOnConsole
+				sLog.logFile = logFile
+				sLog.allowOnConsole = config.SchedWindowConfig.AllowOnConsole
 			}
 		}
 	}