diff --git a/scheduler.go b/scheduler.go
index fddfa59..9fc8b1d 100644
--- a/scheduler.go
+++ b/scheduler.go
@@ -1,20 +1,20 @@
 // Copyright (C) 2018 spdf
-// 
+//
 // This file is part of Elektron.
-// 
+//
 // Elektron is free software: you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
 // the Free Software Foundation, either version 3 of the License, or
 // (at your option) any later version.
-// 
+//
 // Elektron is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
-// 
+//
 // You should have received a copy of the GNU General Public License
 // along with Elektron.  If not, see <http://www.gnu.org/licenses/>.
-// 
+//
 
 package main
 
@@ -95,19 +95,9 @@ func main() {
 		os.Exit(1)
 	}
 
-	// Creating logger and attaching different logging platforms.
-	startTime := time.Now()
-	formattedStartTime := startTime.Format("20060102150405")
-	// Checking if prefix contains any special characters
-	if strings.Contains(*pcplogPrefix, "/") {
-		log.Fatal("log file prefix should not contain '/'.")
-	}
-	logPrefix := *pcplogPrefix + "_" + formattedStartTime
-	logger := elekLogDef.BuildLogger(startTime, logPrefix)
 	// Logging channels.
 	logMType := make(chan elekLogDef.LogMessageType)
 	logMsg := make(chan string)
-	go logger.Listen(logMType, logMsg)
 
 	// First we need to build the scheduler using scheduler options.
 	var schedOptions []schedulers.SchedulerOptions = make([]schedulers.SchedulerOptions, 0, 10)
@@ -149,9 +139,7 @@ func main() {
 	if *enableSchedPolicySwitch {
 		// Scheduling policy config file required.
 		if spcf := *schedPolConfigFile; spcf == "" {
-			logger.WriteLog(elekLogDef.ERROR, "No file containing characteristics for"+
-				" scheduling policies")
-			os.Exit(1)
+			log.Fatal("Scheduling policy characteristics file not provided.")
 		} else {
 			// Initializing the characteristics of the scheduling policies.
 			schedulers.InitSchedPolicyCharacteristics(spcf)
@@ -169,7 +157,7 @@ func main() {
 	// If CMW is disabled, then the Median of Medians Max Peak Power Usage value is used
 	//	as the watts value for each task.
 	if *wattsAsAResource {
-		logger.WriteLog(elekLogDef.GENERAL, "WaaR enabled...")
+		log.Println("WaaR enabled...")
 		schedOptions = append(schedOptions, schedulers.WithWattsAsAResource(*wattsAsAResource))
 		schedOptions = append(schedOptions, schedulers.WithClassMapWatts(*classMapWatts))
 	}
@@ -186,8 +174,7 @@ func main() {
 		"prog-extrema": {},
 	}
 	if _, ok := powercapValues[*powerCapPolicy]; !ok {
-		logger.WriteLog(elekLogDef.ERROR, "Incorrect power-capping algorithm specified.")
-		os.Exit(1)
+		log.Fatal("Incorrect power-capping algorithm specified.")
 	} else {
 		// Indicating which power capping algorithm to use, if any.
 		// The pcp-logging with/without power capping will be run after the
@@ -207,9 +194,8 @@ func main() {
 				// These values are not used to configure the scheduler.
 				// hiThreshold and loThreshold are passed to the powercappers.
 				if *hiThreshold < *loThreshold {
-					logger.WriteLog(elekLogDef.ERROR, "High threshold is of a"+
-						" lower value than low threshold.")
-					os.Exit(1)
+					log.Fatal("High threshold is of a lower value than low " +
+						"threshold.")
 				}
 			}
 		}
@@ -218,15 +204,11 @@ func main() {
 	// Tasks
 	// If httpServer is disabled, then path of file containing workload needs to be provided.
 	if *tasksFile == "" {
-		logger.WriteLog(elekLogDef.ERROR, "No file containing tasks specification"+
-			" provided.")
-		os.Exit(1)
+		log.Fatal("Tasks specifications file not provided.")
 	}
 	tasks, err := def.TasksFromJSON(*tasksFile)
 	if err != nil || len(tasks) == 0 {
-		logger.WriteLog(elekLogDef.ERROR, "Invalid tasks specification file "+
-			"provided.")
-		os.Exit(1)
+		log.Fatal("Invalid tasks specification file provided.")
 	}
 	schedOptions = append(schedOptions, schedulers.WithTasks(tasks))
 
@@ -243,11 +225,22 @@ func main() {
 		Scheduler: scheduler,
 	})
 	if err != nil {
-		logger.WriteLog(elekLogDef.ERROR, fmt.Sprintf("Unable to create scheduler driver:"+
-			" %s", err))
-		os.Exit(1)
+		log.Fatal(fmt.Sprintf("Unable to create scheduler driver: %s", err))
 	}
 
+	// If here, then all command-line arguments validate.
+	// Creating logger and attaching different logging platforms.
+	startTime := time.Now()
+	formattedStartTime := startTime.Format("20060102150405")
+	// Checking if prefix contains any special characters.
+	if strings.Contains(*pcplogPrefix, "/") {
+		log.Fatal("log file prefix should not contain '/'.")
+	}
+	logPrefix := *pcplogPrefix + "_" + formattedStartTime
+	logger := elekLogDef.BuildLogger(startTime, logPrefix)
+	// Starting the logging go-routine.
+	go logger.Listen(logMType, logMsg)
+
 	// Starting PCP logging.
 	if noPowercap {
 		go pcp.Start(pcpLog, &recordPCP, logMType, logMsg, *pcpConfigFile)
diff --git a/schedulers/helpers.go b/schedulers/helpers.go
index b841227..a1d6fdb 100644
--- a/schedulers/helpers.go
+++ b/schedulers/helpers.go
@@ -1,24 +1,25 @@
 // Copyright (C) 2018 spdf
-// 
+//
 // This file is part of Elektron.
-// 
+//
 // Elektron is free software: you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
 // the Free Software Foundation, either version 3 of the License, or
 // (at your option) any later version.
-// 
+//
 // Elektron is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 // GNU General Public License for more details.
-// 
+//
 // You should have received a copy of the GNU General Public License
 // along with Elektron.  If not, see <http://www.gnu.org/licenses/>.
-// 
+//
 
 package schedulers
 
 import (
+	"fmt"
 	mesos "github.com/mesos/mesos-go/api/v0/mesosproto"
 	sched "github.com/mesos/mesos-go/api/v0/scheduler"
 	"github.com/pkg/errors"
@@ -27,6 +28,7 @@ import (
 	elekLogDef "gitlab.com/spdf/elektron/logging/def"
 	"gitlab.com/spdf/elektron/utilities"
 	"gitlab.com/spdf/elektron/utilities/mesosUtils"
+	"log"
 )
 
 func coLocated(tasks map[string]bool, s BaseScheduler) {
@@ -150,10 +152,8 @@ func WithSchedPolSwitchEnabled(enableSchedPolicySwitch bool, switchingCriteria s
 func WithNameOfFirstSchedPolToFix(nameOfFirstSchedPol string) SchedulerOptions {
 	return func(s ElectronScheduler) error {
 		if nameOfFirstSchedPol == "" {
-			lmt := elekLogDef.WARNING
-			msgColor := elekLogDef.LogMessageColors[lmt]
-			msg := msgColor.Sprintf("First scheduling policy to deploy not mentioned. This is now going to be determined at runtime.")
-			s.(*BaseScheduler).Log(lmt, msg)
+			log.Println("First scheduling policy to deploy not mentioned. This is now" +
+				" going to be determined at runtime.")
 			return nil
 		}
 		if _, ok := SchedPolicies[nameOfFirstSchedPol]; !ok {
@@ -170,15 +170,13 @@ func WithFixedSchedulingWindow(toFixSchedWindow bool, fixedSchedWindowSize int)
 			if fixedSchedWindowSize <= 0 {
 				return errors.New("Invalid value of scheduling window size. Please provide a value > 0.")
 			}
-			lmt := elekLogDef.WARNING
-			msgColor := elekLogDef.LogMessageColors[lmt]
-			msg := msgColor.Sprintf("Fixing the size of the scheduling window to %d...", fixedSchedWindowSize)
-			s.(*BaseScheduler).Log(lmt, msg)
+			log.Println(fmt.Sprintf("Fixing the size of the scheduling window to %d.."+
+				".", fixedSchedWindowSize))
 			s.(*BaseScheduler).toFixSchedWindow = toFixSchedWindow
 			s.(*BaseScheduler).schedWindowSize = fixedSchedWindowSize
 		}
 		// There shouldn't be any error for this scheduler option.
-		// If toFixSchedWindow is set to false, then the fixedSchedWindowSize would be ignored. In this case,
+		// If fixSchedWindow is set to false, then the fixedSchedWindowSize would be ignored. In this case,
 		// 	the size of the scheduling window would be determined at runtime.
 		return nil
 	}