WIP : Elektron Logging library #16

Merged
balandi1 merged 50 commits from master into master 2019-12-10 01:15:34 +00:00
23 changed files with 535 additions and 370 deletions
Showing only changes of commit da6577fc68 - Show all commits

View file

@ -26,8 +26,8 @@ import (
pradykaushik commented 2019-11-21 00:31:57 +00:00 (Migrated from github.com)

I would alias this to elekLog as you seem to be using that prefix when aliasing imports of sub-packages.

I would alias this to _elekLog_ as you seem to be using that prefix when aliasing imports of sub-packages.
balandi1 commented 2019-11-21 19:30:07 +00:00 (Migrated from github.com)

Okay. Done

Okay. Done
pradykaushik commented 2019-11-21 00:31:57 +00:00 (Migrated from github.com)

I would alias this to elekLog as you seem to be using that prefix when aliasing imports of sub-packages.

I would alias this to _elekLog_ as you seem to be using that prefix when aliasing imports of sub-packages.
balandi1 commented 2019-11-21 19:30:07 +00:00 (Migrated from github.com)

Okay. Done

Okay. Done
"github.com/mash/gokmeans" "github.com/mash/gokmeans"
"github.com/montanaflynn/stats" "github.com/montanaflynn/stats"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
elekLog "github.com/spdfg/elektron/elektronLogging" elekLog "github.com/spdfg/elektron/logging"
pradykaushik commented 2019-11-21 00:31:57 +00:00 (Migrated from github.com)

I would alias this to elekLog as you seem to be using that prefix when aliasing imports of sub-packages.

I would alias this to _elekLog_ as you seem to be using that prefix when aliasing imports of sub-packages.
balandi1 commented 2019-11-21 19:30:07 +00:00 (Migrated from github.com)

Okay. Done

Okay. Done
pradykaushik commented 2019-11-21 00:31:57 +00:00 (Migrated from github.com)

I would alias this to elekLog as you seem to be using that prefix when aliasing imports of sub-packages.

I would alias this to _elekLog_ as you seem to be using that prefix when aliasing imports of sub-packages.
balandi1 commented 2019-11-21 19:30:07 +00:00 (Migrated from github.com)

Okay. Done

Okay. Done
elekLogTypes "github.com/spdfg/elektron/elektronLogging/types" . "github.com/spdfg/elektron/logging/types"
pradykaushik commented 2019-11-21 00:31:57 +00:00 (Migrated from github.com)

I would alias this to elekLog as you seem to be using that prefix when aliasing imports of sub-packages.

I would alias this to _elekLog_ as you seem to be using that prefix when aliasing imports of sub-packages.
balandi1 commented 2019-11-21 19:30:07 +00:00 (Migrated from github.com)

Okay. Done

Okay. Done
pradykaushik commented 2019-11-21 00:31:57 +00:00 (Migrated from github.com)

I would alias this to elekLog as you seem to be using that prefix when aliasing imports of sub-packages.

I would alias this to _elekLog_ as you seem to be using that prefix when aliasing imports of sub-packages.
balandi1 commented 2019-11-21 19:30:07 +00:00 (Migrated from github.com)

Okay. Done

Okay. Done
) )
// Information about a cluster of tasks. // Information about a cluster of tasks.
@ -52,7 +52,7 @@ func (tc TasksToClassify) taskObservationCalculator(task Task) []float64 {
pradykaushik commented 2019-11-21 00:31:57 +00:00 (Migrated from github.com)

I would alias this to elekLog as you seem to be using that prefix when aliasing imports of sub-packages.

I would alias this to _elekLog_ as you seem to be using that prefix when aliasing imports of sub-packages.
balandi1 commented 2019-11-21 19:30:07 +00:00 (Migrated from github.com)

Okay. Done

Okay. Done
pradykaushik commented 2019-11-21 00:31:57 +00:00 (Migrated from github.com)

I would alias this to elekLog as you seem to be using that prefix when aliasing imports of sub-packages.

I would alias this to _elekLog_ as you seem to be using that prefix when aliasing imports of sub-packages.
balandi1 commented 2019-11-21 19:30:07 +00:00 (Migrated from github.com)

Okay. Done

Okay. Done
} else if task.Watts != 0.0 { } else if task.Watts != 0.0 {
return []float64{task.Watts} return []float64{task.Watts}
} else { } else {
elekLog.ElektronLogger.Log(elekLogTypes.CONSOLE, log.FatalLevel, "Unable to classify tasks. Missing Watts or ClassToWatts attribute in workload") elekLog.Log(CONSOLE, log.FatalLevel, "Unable to classify tasks. Missing Watts or ClassToWatts attribute in workload")
pradykaushik commented 2019-11-21 00:31:57 +00:00 (Migrated from github.com)

I would alias this to elekLog as you seem to be using that prefix when aliasing imports of sub-packages.

I would alias this to _elekLog_ as you seem to be using that prefix when aliasing imports of sub-packages.
balandi1 commented 2019-11-21 19:30:07 +00:00 (Migrated from github.com)

Okay. Done

Okay. Done
pradykaushik commented 2019-11-21 00:31:57 +00:00 (Migrated from github.com)

I would alias this to elekLog as you seem to be using that prefix when aliasing imports of sub-packages.

I would alias this to _elekLog_ as you seem to be using that prefix when aliasing imports of sub-packages.
balandi1 commented 2019-11-21 19:30:07 +00:00 (Migrated from github.com)

Okay. Done

Okay. Done
return []float64{0.0} // Won't reach here. return []float64{0.0} // Won't reach here.
} }
} }
@ -107,7 +107,7 @@ func clusterSizeAvgMMMPU(tasks []Task, taskObservation func(task Task) []float64
pradykaushik commented 2019-11-21 00:31:57 +00:00 (Migrated from github.com)

I would alias this to elekLog as you seem to be using that prefix when aliasing imports of sub-packages.

I would alias this to _elekLog_ as you seem to be using that prefix when aliasing imports of sub-packages.
balandi1 commented 2019-11-21 19:30:07 +00:00 (Migrated from github.com)

Okay. Done

Okay. Done
pradykaushik commented 2019-11-21 00:31:57 +00:00 (Migrated from github.com)

I would alias this to elekLog as you seem to be using that prefix when aliasing imports of sub-packages.

I would alias this to _elekLog_ as you seem to be using that prefix when aliasing imports of sub-packages.
balandi1 commented 2019-11-21 19:30:07 +00:00 (Migrated from github.com)

Okay. Done

Okay. Done
} else { } else {
ridv commented 2019-11-19 02:56:12 +00:00 (Migrated from github.com)

Is Logf an option here instead of sprinting?

Is Logf an option here instead of sprinting?
pradykaushik commented 2019-11-21 00:38:18 +00:00 (Migrated from github.com)

Replace elekLogT.ERROR with elekLogT.CONSOLE.

Replace `elekLogT.ERROR` with `elekLogT.CONSOLE`.
pradykaushik commented 2019-11-21 00:39:20 +00:00 (Migrated from github.com)

err.Error() returns the string representation.

`err.Error()` returns the string representation.
balandi1 commented 2019-11-21 18:07:17 +00:00 (Migrated from github.com)

Yes. I will work on implementing Logf()

Yes. I will work on implementing Logf()
balandi1 commented 2019-11-21 19:59:56 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-21 20:07:53 +00:00 (Migrated from github.com)

Okay. Will do the change

Okay. Will do the change
// skip this value // skip this value
// there is an error in the task config. // there is an error in the task config.
elekLog.ElektronLogger.Log(elekLogTypes.CONSOLE, log.ErrorLevel, err.Error()) elekLog.Log(CONSOLE, log.ErrorLevel, err.Error())
pradykaushik commented 2019-11-21 00:31:57 +00:00 (Migrated from github.com)

I would alias this to elekLog as you seem to be using that prefix when aliasing imports of sub-packages.

I would alias this to _elekLog_ as you seem to be using that prefix when aliasing imports of sub-packages.
balandi1 commented 2019-11-21 19:30:07 +00:00 (Migrated from github.com)

Okay. Done

Okay. Done
pradykaushik commented 2019-11-21 00:31:57 +00:00 (Migrated from github.com)

I would alias this to elekLog as you seem to be using that prefix when aliasing imports of sub-packages.

I would alias this to _elekLog_ as you seem to be using that prefix when aliasing imports of sub-packages.
balandi1 commented 2019-11-21 19:30:07 +00:00 (Migrated from github.com)

Okay. Done

Okay. Done
} }
} else { } else {
// There is only one observation for the task. // There is only one observation for the task.

pradykaushik commented 2019-11-21 00:31:57 +00:00 (Migrated from github.com)

I would alias this to elekLog as you seem to be using that prefix when aliasing imports of sub-packages.

I would alias this to _elekLog_ as you seem to be using that prefix when aliasing imports of sub-packages.
balandi1 commented 2019-11-21 19:30:07 +00:00 (Migrated from github.com)

Okay. Done

Okay. Done
pradykaushik commented 2019-11-21 00:31:57 +00:00 (Migrated from github.com)

I would alias this to elekLog as you seem to be using that prefix when aliasing imports of sub-packages.

I would alias this to _elekLog_ as you seem to be using that prefix when aliasing imports of sub-packages.
balandi1 commented 2019-11-21 19:30:07 +00:00 (Migrated from github.com)

Okay. Done

Okay. Done

View file

@ -1,54 +0,0 @@
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
package elektronLogging
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
import (
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
"os"
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
"strings"
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
"time"
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
log "github.com/sirupsen/logrus"
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
. "github.com/spdfg/elektron/elektronLogging/types"
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
)
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
var config LoggerConfig
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
var formatter ElektronFormatter
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
var ElektronLogger *loggerImpl
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
func BuildLogger(prefix string, logConfigFilename string) {
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
// Read configuration from yaml.
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
config.GetConfig(logConfigFilename)
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
// Create the log directory.
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
startTime := time.Now()
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
formatter.TimestampFormat = "2006-01-02 15:04:05"
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
formattedStartTime := startTime.Format("20060102150405")
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
logDir := &logDirectory{}
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
logDir.createLogDir(prefix, startTime)
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
// Instantiate the logrus instance.
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
prefix = strings.Join([]string{prefix, formattedStartTime}, "_")
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
logger := &log.Logger{
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
Out: os.Stderr,
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
Level: log.DebugLevel,
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
Formatter: &formatter,
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
}
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
// Create a chain of loggers.
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
b := &baseLogData{data: log.Fields{}}
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
head := &loggerImpl{baseLogData: b}
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
cLog := NewConsoleLogger(b, CONSOLE, prefix, logger, logDir)
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
pLog := NewPCPLogger(b, PCP, prefix, logger, logDir)
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
schedTraceLog := NewSchedTraceLogger(b, SCHED_TRACE, prefix, logger, logDir)
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
spsLog := NewSchedPolicySwitchLogger(b, SPS, prefix, logger, logDir)
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
schedWindowLog := NewSchedWindowLogger(b, SCHED_WINDOW, prefix, logger, logDir)
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
tskDistLog := NewClsfnTaskDistrOverheadLogger(b, CLSFN_TASKDISTR_OVERHEAD, prefix, logger, logDir)
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
head.setNext(cLog)
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
cLog.setNext(pLog)
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
pLog.setNext(schedTraceLog)
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
schedTraceLog.setNext(spsLog)
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
spsLog.setNext(schedWindowLog)
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
schedWindowLog.setNext(tskDistLog)
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
ElektronLogger = head
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`
}
pradykaushik commented 2019-11-21 01:22:14 +00:00 (Migrated from github.com)

Logger and Log are synonyms and therefore should not be used interchangeably.

Logger and Log are synonyms and therefore should not be used interchangeably.
pradykaushik commented 2019-11-21 01:23:28 +00:00 (Migrated from github.com)

Comments should start with capital letters and should end with a full stop.

Comments should start with capital letters and should end with a full stop.
pradykaushik commented 2019-11-21 01:26:47 +00:00 (Migrated from github.com)

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the -logPrefix flag.

The second argument to GetLogDir() is a prefix. How is "_" a prefix? This is probably why the log directory name is not ending up prefixed with the one specified with the `-logPrefix` flag.
pradykaushik commented 2019-11-21 01:33:09 +00:00 (Migrated from github.com)

What is the rationale behind having a dummy node as the head of the chain?

What is the rationale behind having a dummy node as the head of the chain?
balandi1 commented 2019-11-26 17:44:22 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 18:53:15 +00:00 (Migrated from github.com)

Nothing specific. I had kept ElektronLog as LoggerImpl type. But I have changed to ConsoleLogger rather. Works fine now

Nothing specific. I had kept `ElektronLog` as `LoggerImpl` type. But I have changed to `ConsoleLogger` rather. Works fine now
balandi1 commented 2019-11-26 18:58:23 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-11-26 19:05:09 +00:00 (Migrated from github.com)

Changed ElektronLog to ElektronLogger

Changed `ElektronLog` to `ElektronLogger`

View file

@ -1,56 +0,0 @@
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
package elektronLogging
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
import (
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
log "github.com/sirupsen/logrus"
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
"os"
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
)
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
type logInterface interface {
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
setNext(logType logInterface)
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
Log(logType int, level log.Level, message string)
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
Logf(logType int, level log.Level, msgFmtString string, args ...interface{})
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
createLogFile(prefix string)
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
}
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
type baseLogData struct {
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
data log.Fields
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
}
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
type loggerImpl struct {
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
*baseLogData
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
logType int
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
allowOnConsole bool
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
logFile *os.File
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
next logInterface
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
logger *log.Logger
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
logDir *logDirectory
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
}
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
func (l *loggerImpl) WithFields(logData log.Fields) *loggerImpl {
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
l.data = logData
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
return l
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
}
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
func (l *loggerImpl) WithField(key string, value string) *loggerImpl {
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
l.data[key] = value
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
return l
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
}
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
func (l *loggerImpl) setNext(logType logInterface) {
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
l.next = logType
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
}
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
func (l loggerImpl) Log(logType int, level log.Level, message string) {
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
if l.next != nil {
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
l.next.Log(logType, level, message)
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
}
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
}
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
func (l loggerImpl) Logf(logType int, level log.Level, msgFmtString string, args ...interface{}) {
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
if l.next != nil {
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
l.next.Logf(logType, level, msgFmtString, args...)
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
}
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
}
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
func (l *loggerImpl) resetFields() {
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
l.data = nil
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
l.data = log.Fields{}
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done
}
ridv commented 2019-11-19 03:52:10 +00:00 (Migrated from github.com)

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.

If the code isn't needed it shouldn't be left here. If the commented out code is still needed there should be some justification for it still being here.
balandi1 commented 2019-11-20 18:52:44 +00:00 (Migrated from github.com)

Okay. Will remove the unnecessary code

Okay. Will remove the unnecessary code
pradykaushik commented 2019-11-21 02:36:05 +00:00 (Migrated from github.com)

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all.
I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a WithFields(...) method that wraps around logrus.WithFields(...).
I have created this sample code for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around logrus.Logf(...) for that.

As fields are optional, it is better to either have them as the last argument or not have them in the argument list at all. I would in fact also maintain an internal data structure to store Fields that is cleared only after the log operation passes through the entire chain. You can then add a `WithFields(...)` method that wraps around `logrus.WithFields(...)`. I have created [this sample code](https://play.golang.org/p/RILTxcZtT2w) for reference. The sample code also shows how formatted strings are corresponding args can be passed and we can wrap around `logrus.Logf(...)` for that.
pradykaushik commented 2019-11-21 02:51:18 +00:00 (Migrated from github.com)

Refactor to LogFile as it is a pointer to os.File and not string.

Refactor to `LogFile` as it is a pointer to os.File and not string.
balandi1 commented 2019-11-26 17:46:53 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-04 18:18:20 +00:00 (Migrated from github.com)

Done

Done

View file

@ -1,4 +1,4 @@
package elektronLogging package logging
import ( import (
"os" "os"
@ -8,26 +8,44 @@ import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
) )
type ClsfnTaskDistrOverheadLogger struct { type clsfnTaskDistrOverheadLogger struct {
loggerImpl baseElektronLogger
} }
func NewClsfnTaskDistrOverheadLogger(b *baseLogData, logType int, prefix string, func newClsfnTaskDistrOverheadLogger(
logger *log.Logger, logDir *logDirectory) *ClsfnTaskDistrOverheadLogger { config *loggerConfig,
cLog := &ClsfnTaskDistrOverheadLogger{} b *baseLogData,
cLog.logType = logType logType int,
cLog.logDir = logDir prefix string,
cLog.next = nil logger *log.Logger,
cLog.baseLogData = b logDir *logDirectory) *clsfnTaskDistrOverheadLogger {
cLog.logger = logger
cLog := &clsfnTaskDistrOverheadLogger{
baseElektronLogger: baseElektronLogger{
baseLogData: b,
config: struct {
Enabled bool
FilenameExtension string
AllowOnConsole bool
}{
Enabled: config.TaskDistrConfig.Enabled,
FilenameExtension: config.TaskDistrConfig.FilenameExtension,
AllowOnConsole: config.TaskDistrConfig.AllowOnConsole,
},
logType: logType,
next: nil,
logger: logger,
logDir: logDir,
},
}
cLog.createLogFile(prefix) cLog.createLogFile(prefix)
return cLog return cLog
} }
func (cLog clsfnTaskDistrOverheadLogger) Log(logType int, level log.Level, message string) {
func (cLog ClsfnTaskDistrOverheadLogger) Log(logType int, level log.Level, message string) {
if cLog.logType == logType { if cLog.logType == logType {
if config.TaskDistrConfig.Enabled { if cLog.isEnabled() {
if cLog.allowOnConsole { if cLog.config.AllowOnConsole {
cLog.logger.SetOutput(os.Stdout) cLog.logger.SetOutput(os.Stdout)
cLog.logger.WithFields(cLog.data).Log(level, message) cLog.logger.WithFields(cLog.data).Log(level, message)
} }
@ -45,10 +63,10 @@ func (cLog ClsfnTaskDistrOverheadLogger) Log(logType int, level log.Level, messa
} }
} }
func (cLog ClsfnTaskDistrOverheadLogger) Logf(logType int, level log.Level, msgFmtString string, args ...interface{}) { func (cLog clsfnTaskDistrOverheadLogger) Logf(logType int, level log.Level, msgFmtString string, args ...interface{}) {
if cLog.logType == logType { if cLog.logType == logType {
if config.TaskDistrConfig.Enabled { if cLog.isEnabled() {
if cLog.allowOnConsole { if cLog.config.AllowOnConsole {
cLog.logger.SetOutput(os.Stdout) cLog.logger.SetOutput(os.Stdout)
cLog.logger.WithFields(cLog.data).Logf(level, msgFmtString, args...) cLog.logger.WithFields(cLog.data).Logf(level, msgFmtString, args...)
} }
@ -65,17 +83,16 @@ func (cLog ClsfnTaskDistrOverheadLogger) Logf(logType int, level log.Level, msgF
} }
} }
func (cLog *ClsfnTaskDistrOverheadLogger) createLogFile(prefix string) { func (cLog *clsfnTaskDistrOverheadLogger) createLogFile(prefix string) {
if config.TaskDistrConfig.Enabled { if cLog.isEnabled() {
filename := strings.Join([]string{prefix, config.TaskDistrConfig.FilenameExtension}, "") filename := strings.Join([]string{prefix, cLog.config.FilenameExtension}, "")
dirName := cLog.logDir.getDirName() dirName := cLog.logDir.getDirName()
if dirName != "" { if dirName != "" {
if logFile, err := os.Create(filepath.Join(dirName, filename)); err != nil { if logFile, err := os.Create(filepath.Join(dirName, filename)); err != nil {
log.Fatal("Unable to create logFile: ", err) log.Fatal("Unable to create logFile: ", err)
} else { } else {
cLog.logFile = logFile cLog.logFile = logFile
cLog.allowOnConsole = config.TaskDistrConfig.AllowOnConsole
} }
} }
} }

View file

@ -1,4 +1,4 @@
package elektronLogging package logging
import ( import (
"fmt" "fmt"
@ -8,24 +8,47 @@ import (
"strings" "strings"
) )
type ConsoleLogger struct { type consoleLogger struct {
loggerImpl baseElektronLogger
MinLogLevel string
} }
func NewConsoleLogger(b *baseLogData, logType int, prefix string, func newConsoleLogger(
logger *log.Logger, logDir *logDirectory) *ConsoleLogger { config *loggerConfig,
cLog := &ConsoleLogger{} b *baseLogData,
cLog.logType = logType logType int,
cLog.logDir = logDir prefix string,
cLog.next = nil logger *log.Logger,
cLog.baseLogData = b logDir *logDirectory) *consoleLogger {
cLog.logger = logger
cLog := &consoleLogger{
baseElektronLogger: baseElektronLogger{
baseLogData: b,
config: struct {
Enabled bool
FilenameExtension string
AllowOnConsole bool
}{
Enabled: config.ConsoleConfig.Enabled,
FilenameExtension: config.ConsoleConfig.FilenameExtension,
AllowOnConsole: config.ConsoleConfig.AllowOnConsole,
},
logType: logType,
next: nil,
logger: logger,
logDir: logDir,
},
MinLogLevel: config.ConsoleConfig.MinLogLevel,
}
cLog.createLogFile(prefix) cLog.createLogFile(prefix)
return cLog return cLog
} }
func (cLog ConsoleLogger) Log(logType int, level log.Level, message string) {
func (cLog consoleLogger) Log(logType int, level log.Level, message string) {
if logType <= cLog.logType { if logType <= cLog.logType {
if config.ConsoleConfig.Enabled { if cLog.isEnabled() {
cLog.logger.SetOutput(os.Stdout) cLog.logger.SetOutput(os.Stdout)
cLog.logger.WithFields(cLog.data).Log(level, message) cLog.logger.WithFields(cLog.data).Log(level, message)
@ -42,9 +65,9 @@ func (cLog ConsoleLogger) Log(logType int, level log.Level, message string) {
} }
} }
func (cLog ConsoleLogger) Logf(logType int, level log.Level, msgFmtString string, args ...interface{}) { func (cLog consoleLogger) Logf(logType int, level log.Level, msgFmtString string, args ...interface{}) {
if logType <= cLog.logType { if logType <= cLog.logType {
if config.ConsoleConfig.Enabled { if cLog.isEnabled() {
cLog.logger.SetOutput(os.Stdout) cLog.logger.SetOutput(os.Stdout)
cLog.logger.WithFields(cLog.data).Logf(level, msgFmtString, args...) cLog.logger.WithFields(cLog.data).Logf(level, msgFmtString, args...)
@ -60,10 +83,10 @@ func (cLog ConsoleLogger) Logf(logType int, level log.Level, msgFmtString string
} }
} }
func (cLog *ConsoleLogger) createLogFile(prefix string) { func (cLog *consoleLogger) createLogFile(prefix string) {
// Create log file for the type if it is enabled. // Create log file for the type if it is enabled.
if config.ConsoleConfig.Enabled { if cLog.isEnabled() {
filename := strings.Join([]string{prefix, config.ConsoleConfig.FilenameExtension}, "") filename := strings.Join([]string{prefix, cLog.config.FilenameExtension}, "")
dirName := cLog.logDir.getDirName() dirName := cLog.logDir.getDirName()
fmt.Println(dirName) fmt.Println(dirName)
if dirName != "" { if dirName != "" {
@ -71,7 +94,6 @@ func (cLog *ConsoleLogger) createLogFile(prefix string) {
log.Fatal("Unable to create logFile: ", err) log.Fatal("Unable to create logFile: ", err)
} else { } else {
cLog.logFile = logFile cLog.logFile = logFile
cLog.allowOnConsole = config.ConsoleConfig.AllowOnConsole
} }
} }
} }

View file

@ -1,4 +1,4 @@
package elektronLogging package logging
import ( import (
"os" "os"

View file

@ -1,4 +1,4 @@
package elektronLogging package logging
import ( import (
"bytes" "bytes"
@ -8,11 +8,11 @@ import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
) )
type ElektronFormatter struct { type elektronFormatter struct {
TimestampFormat string TimestampFormat string
} }
func (f ElektronFormatter) Format(entry *log.Entry) ([]byte, error) { func (f elektronFormatter) Format(entry *log.Entry) ([]byte, error) {
var b *bytes.Buffer var b *bytes.Buffer
if entry.Buffer != nil { if entry.Buffer != nil {

140
logging/logger.go Normal file
View file

@ -0,0 +1,140 @@
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
package logging
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
import (
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
"github.com/pkg/errors"
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
"os"
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
"strings"
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
"time"
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
log "github.com/sirupsen/logrus"
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
. "github.com/spdfg/elektron/logging/types"
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
)
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
// var config loggerConfig
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
var formatter elektronFormatter
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
var elektronLoggerInstance elektronLogger
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
type elektronLogger interface {
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
setNext(next elektronLogger)
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
isEnabled() bool
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
Log(logType int, level log.Level, message string)
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
Logf(logType int, level log.Level, msgFmtString string, args ...interface{})
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
WithFields(logData log.Fields) elektronLogger
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
WithField(key string, value string) elektronLogger
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
}
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
type baseLogData struct {
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
data log.Fields
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
}
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
type baseElektronLogger struct {
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
*baseLogData
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
config struct {
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
Enabled bool
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
FilenameExtension string
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
AllowOnConsole bool
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
}
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
logType int
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
logFile *os.File
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
next elektronLogger
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
logger *log.Logger
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
logDir *logDirectory
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
}
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
func (l baseElektronLogger) isEnabled() bool {
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
return l.config.Enabled
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
}
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
func (l *baseElektronLogger) WithFields(logData log.Fields) elektronLogger {
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
l.data = logData
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
return l
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
}
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
func (l *baseElektronLogger) WithField(key string, value string) elektronLogger {
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
l.data[key] = value
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
return l
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
}
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
func (l *baseElektronLogger) setNext(next elektronLogger) {
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
l.next = next
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
}
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
func (l baseElektronLogger) Log(logType int, level log.Level, message string) {
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
if l.next != nil {
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
l.next.Log(logType, level, message)
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
}
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
}
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
func (l baseElektronLogger) Logf(logType int, level log.Level, msgFmtString string, args ...interface{}) {
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
if l.next != nil {
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
l.next.Logf(logType, level, msgFmtString, args...)
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
}
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
}
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
func (l *baseElektronLogger) resetFields() {
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
l.data = nil
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
l.data = log.Fields{}
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
}
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
func BuildLogger(prefix string, logConfigFilename string) error {
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
// Create the log directory.
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
startTime := time.Now()
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
formatter.TimestampFormat = "2006-01-02 15:04:05"
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
formattedStartTime := startTime.Format("20060102150405")
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
logDir := &logDirectory{}
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
logDir.createLogDir(prefix, startTime)
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
// Instantiate the logrus instance.
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
prefix = strings.Join([]string{prefix, formattedStartTime}, "_")
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
logger := &log.Logger{
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
Out: os.Stderr,
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
Level: log.DebugLevel,
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
Formatter: &formatter,
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
}
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
// Create a chain of loggers.
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
b := &baseLogData{data: log.Fields{}}
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
head := &baseElektronLogger{baseLogData: b}
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
// Read configuration from yaml.
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
if config, err := GetConfig(logConfigFilename); err != nil {
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
return errors.Wrap(err, "Failed to build logger")
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
} else {
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
cLog := newConsoleLogger(config, b, CONSOLE, prefix, logger, logDir)
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pLog := newPCPLogger(config, b, PCP, prefix, logger, logDir)
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
schedTraceLog := newSchedTraceLogger(config, b, SCHED_TRACE, prefix, logger, logDir)
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
spsLog := newSchedPolicySwitchLogger(config, b, SPS, prefix, logger, logDir)
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
schedWindowLog := newSchedWindowLogger(config, b, SCHED_WINDOW, prefix, logger, logDir)
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
tskDistLog := newClsfnTaskDistrOverheadLogger(config, b, CLSFN_TASKDISTR_OVERHEAD, prefix, logger, logDir)
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
head.setNext(cLog)
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
cLog.setNext(pLog)
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pLog.setNext(schedTraceLog)
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
schedTraceLog.setNext(spsLog)
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
spsLog.setNext(schedWindowLog)
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
schedWindowLog.setNext(tskDistLog)
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
}
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
elektronLoggerInstance = head
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
return nil
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
}
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
func Log(logType int, level log.Level, message string) {
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
elektronLoggerInstance.Log(logType, level, message)
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
}
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
func Logf(logType int, level log.Level, msgFmtString string, args ...interface{}) {
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
elektronLoggerInstance.Logf(logType, level, msgFmtString, args...)
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
}
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
func WithFields(logData log.Fields) elektronLogger {
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
return elektronLoggerInstance.WithFields(logData)
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
}
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
func WithField(key string, value string) elektronLogger {
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
return elektronLoggerInstance.WithField(key, value)
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done
}
pradykaushik commented 2019-12-06 22:03:56 +00:00 (Migrated from github.com)

isEnabled() does not have to be part of the interface.

`isEnabled()` does not have to be part of the interface.
pradykaushik commented 2019-12-06 22:04:02 +00:00 (Migrated from github.com)

ditto

ditto
pradykaushik commented 2019-12-06 22:04:11 +00:00 (Migrated from github.com)

ditto

ditto
balandi1 commented 2019-12-09 15:41:29 +00:00 (Migrated from github.com)

Yes. Removed it from there

Yes. Removed it from there
balandi1 commented 2019-12-09 15:42:13 +00:00 (Migrated from github.com)

Done

Done
balandi1 commented 2019-12-09 15:42:23 +00:00 (Migrated from github.com)

Done

Done

View file

@ -1,12 +1,13 @@
pradykaushik commented 2019-12-06 22:05:07 +00:00 (Migrated from github.com)

does this need to be exported outside the package?

does this need to be exported outside the package?
balandi1 commented 2019-12-09 16:03:06 +00:00 (Migrated from github.com)

No, not needed. Changed it to getConfig .

No, not needed. Changed it to `getConfig` .
pradykaushik commented 2019-12-06 22:05:07 +00:00 (Migrated from github.com)

does this need to be exported outside the package?

does this need to be exported outside the package?
balandi1 commented 2019-12-09 16:03:06 +00:00 (Migrated from github.com)

No, not needed. Changed it to getConfig .

No, not needed. Changed it to `getConfig` .
package elektronLogging package logging
pradykaushik commented 2019-12-06 22:05:07 +00:00 (Migrated from github.com)

does this need to be exported outside the package?

does this need to be exported outside the package?
balandi1 commented 2019-12-09 16:03:06 +00:00 (Migrated from github.com)

No, not needed. Changed it to getConfig .

No, not needed. Changed it to `getConfig` .
pradykaushik commented 2019-12-06 22:05:07 +00:00 (Migrated from github.com)

does this need to be exported outside the package?

does this need to be exported outside the package?
balandi1 commented 2019-12-09 16:03:06 +00:00 (Migrated from github.com)

No, not needed. Changed it to getConfig .

No, not needed. Changed it to `getConfig` .
import ( import (
"github.com/pkg/errors"
pradykaushik commented 2019-12-06 22:05:07 +00:00 (Migrated from github.com)

does this need to be exported outside the package?

does this need to be exported outside the package?
balandi1 commented 2019-12-09 16:03:06 +00:00 (Migrated from github.com)

No, not needed. Changed it to getConfig .

No, not needed. Changed it to `getConfig` .
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"gopkg.in/yaml.v2" "gopkg.in/yaml.v2"
"io/ioutil" "io/ioutil"
) )
type LoggerConfig struct { type loggerConfig struct {
pradykaushik commented 2019-12-06 22:05:07 +00:00 (Migrated from github.com)

does this need to be exported outside the package?

does this need to be exported outside the package?
balandi1 commented 2019-12-09 16:03:06 +00:00 (Migrated from github.com)

No, not needed. Changed it to getConfig .

No, not needed. Changed it to `getConfig` .
pradykaushik commented 2019-12-06 22:05:07 +00:00 (Migrated from github.com)

does this need to be exported outside the package?

does this need to be exported outside the package?
balandi1 commented 2019-12-09 16:03:06 +00:00 (Migrated from github.com)

No, not needed. Changed it to getConfig .

No, not needed. Changed it to `getConfig` .
SchedTraceConfig struct { SchedTraceConfig struct {
Enabled bool `yaml:"enabled"` Enabled bool `yaml:"enabled"`
FilenameExtension string `yaml:"filenameExtension"` FilenameExtension string `yaml:"filenameExtension"`
@ -47,16 +48,18 @@ type LoggerConfig struct {
pradykaushik commented 2019-12-06 22:05:07 +00:00 (Migrated from github.com)

does this need to be exported outside the package?

does this need to be exported outside the package?
balandi1 commented 2019-12-09 16:03:06 +00:00 (Migrated from github.com)

No, not needed. Changed it to getConfig .

No, not needed. Changed it to `getConfig` .
pradykaushik commented 2019-12-06 22:05:07 +00:00 (Migrated from github.com)

does this need to be exported outside the package?

does this need to be exported outside the package?
balandi1 commented 2019-12-09 16:03:06 +00:00 (Migrated from github.com)

No, not needed. Changed it to getConfig .

No, not needed. Changed it to `getConfig` .
Format []string `yaml:"format"` Format []string `yaml:"format"`
} }
func (c *LoggerConfig) GetConfig(logConfigFilename string) *LoggerConfig { func GetConfig(logConfigFilename string) (*loggerConfig, error) {
pradykaushik commented 2019-12-06 22:05:07 +00:00 (Migrated from github.com)

does this need to be exported outside the package?

does this need to be exported outside the package?
balandi1 commented 2019-12-09 16:03:06 +00:00 (Migrated from github.com)

No, not needed. Changed it to getConfig .

No, not needed. Changed it to `getConfig` .
pradykaushik commented 2019-12-06 22:05:07 +00:00 (Migrated from github.com)

does this need to be exported outside the package?

does this need to be exported outside the package?
balandi1 commented 2019-12-09 16:03:06 +00:00 (Migrated from github.com)

No, not needed. Changed it to getConfig .

No, not needed. Changed it to `getConfig` .
yamlFile, err := ioutil.ReadFile(logConfigFilename) yamlFile, err := ioutil.ReadFile(logConfigFilename)
if err != nil { if err != nil {
log.Printf("Error in reading yaml file #%v ", err) return nil, errors.Wrap(err, "failed to read log config file")
pradykaushik commented 2019-12-06 22:05:07 +00:00 (Migrated from github.com)

does this need to be exported outside the package?

does this need to be exported outside the package?
balandi1 commented 2019-12-09 16:03:06 +00:00 (Migrated from github.com)

No, not needed. Changed it to getConfig .

No, not needed. Changed it to `getConfig` .
pradykaushik commented 2019-12-06 22:05:07 +00:00 (Migrated from github.com)

does this need to be exported outside the package?

does this need to be exported outside the package?
balandi1 commented 2019-12-09 16:03:06 +00:00 (Migrated from github.com)

No, not needed. Changed it to getConfig .

No, not needed. Changed it to `getConfig` .
} }
pradykaushik commented 2019-12-06 22:05:07 +00:00 (Migrated from github.com)

does this need to be exported outside the package?

does this need to be exported outside the package?
balandi1 commented 2019-12-09 16:03:06 +00:00 (Migrated from github.com)

No, not needed. Changed it to getConfig .

No, not needed. Changed it to `getConfig` .
c := &loggerConfig{}
pradykaushik commented 2019-12-06 22:05:07 +00:00 (Migrated from github.com)

does this need to be exported outside the package?

does this need to be exported outside the package?
balandi1 commented 2019-12-09 16:03:06 +00:00 (Migrated from github.com)

No, not needed. Changed it to getConfig .

No, not needed. Changed it to `getConfig` .
err = yaml.Unmarshal(yamlFile, c) err = yaml.Unmarshal(yamlFile, c)
if err != nil { if err != nil {
log.Fatalf("Error in unmarshalling yaml: %v", err) log.Fatalf("Error in unmarshalling yaml: %v", err)
} }
return c return c, nil
pradykaushik commented 2019-12-06 22:05:07 +00:00 (Migrated from github.com)

does this need to be exported outside the package?

does this need to be exported outside the package?
balandi1 commented 2019-12-09 16:03:06 +00:00 (Migrated from github.com)

No, not needed. Changed it to getConfig .

No, not needed. Changed it to `getConfig` .
pradykaushik commented 2019-12-06 22:05:07 +00:00 (Migrated from github.com)

does this need to be exported outside the package?

does this need to be exported outside the package?
balandi1 commented 2019-12-09 16:03:06 +00:00 (Migrated from github.com)

No, not needed. Changed it to getConfig .

No, not needed. Changed it to `getConfig` .
} }

View file

@ -1,4 +1,4 @@
package elektronLogging package logging
import ( import (
"os" "os"
@ -8,26 +8,45 @@ import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
) )
type PCPLogger struct { type pcpLogger struct {
loggerImpl baseElektronLogger
} }
func NewPCPLogger(b *baseLogData, logType int, prefix string, func newPCPLogger(
logger *log.Logger, logDir *logDirectory) *PCPLogger { config *loggerConfig,
pLog := &PCPLogger{} b *baseLogData,
pLog.logType = logType logType int,
pLog.logDir = logDir prefix string,
pLog.next = nil logger *log.Logger,
pLog.baseLogData = b logDir *logDirectory) *pcpLogger {
pLog.logger = logger
pLog := &pcpLogger{
baseElektronLogger: baseElektronLogger{
baseLogData: b,
config: struct {
Enabled bool
FilenameExtension string
AllowOnConsole bool
}{
Enabled: config.PCPConfig.Enabled,
FilenameExtension: config.PCPConfig.FilenameExtension,
AllowOnConsole: config.PCPConfig.AllowOnConsole,
},
logType: logType,
next: nil,
logger: logger,
logDir: logDir,
},
}
pLog.createLogFile(prefix) pLog.createLogFile(prefix)
return pLog return pLog
} }
func (pLog PCPLogger) Log(logType int, level log.Level, message string) { func (pLog pcpLogger) Log(logType int, level log.Level, message string) {
if pLog.logType == logType { if pLog.logType == logType {
if config.PCPConfig.Enabled { if pLog.isEnabled() {
if pLog.allowOnConsole { if pLog.config.AllowOnConsole {
pLog.logger.SetOutput(os.Stdout) pLog.logger.SetOutput(os.Stdout)
pLog.logger.WithFields(pLog.data).Log(level, message) pLog.logger.WithFields(pLog.data).Log(level, message)
} }
@ -44,10 +63,10 @@ func (pLog PCPLogger) Log(logType int, level log.Level, message string) {
} }
} }
func (pLog PCPLogger) Logf(logType int, level log.Level, msgFmtString string, args ...interface{}) { func (pLog pcpLogger) Logf(logType int, level log.Level, msgFmtString string, args ...interface{}) {
if pLog.logType == logType { if pLog.logType == logType {
if config.PCPConfig.Enabled { if pLog.isEnabled() {
if pLog.allowOnConsole { if pLog.config.AllowOnConsole {
pLog.logger.SetOutput(os.Stdout) pLog.logger.SetOutput(os.Stdout)
pLog.logger.WithFields(pLog.data).Logf(level, msgFmtString, args...) pLog.logger.WithFields(pLog.data).Logf(level, msgFmtString, args...)
} }
@ -65,16 +84,15 @@ func (pLog PCPLogger) Logf(logType int, level log.Level, msgFmtString string, ar
} }
} }
func (pLog *PCPLogger) createLogFile(prefix string) { func (pLog *pcpLogger) createLogFile(prefix string) {
if config.PCPConfig.Enabled { if pLog.isEnabled() {
filename := strings.Join([]string{prefix, config.PCPConfig.FilenameExtension}, "") filename := strings.Join([]string{prefix, pLog.config.FilenameExtension}, "")
dirName := pLog.logDir.getDirName() dirName := pLog.logDir.getDirName()
if dirName != "" { if dirName != "" {
if logFile, err := os.Create(filepath.Join(dirName, filename)); err != nil { if logFile, err := os.Create(filepath.Join(dirName, filename)); err != nil {
log.Fatal("Unable to create logFile: ", err) log.Fatal("Unable to create logFile: ", err)
} else { } else {
pLog.logFile = logFile pLog.logFile = logFile
pLog.allowOnConsole = config.PCPConfig.AllowOnConsole
} }
} }
} }

View file

@ -1,4 +1,4 @@
package elektronLogging package logging
import ( import (
"os" "os"
@ -8,26 +8,45 @@ import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
) )
type SchedPolicySwitchLogger struct { type schedPolicySwitchLogger struct {
loggerImpl baseElektronLogger
} }
func NewSchedPolicySwitchLogger(b *baseLogData, logType int, prefix string, func newSchedPolicySwitchLogger(
logger *log.Logger, logDir *logDirectory) *SchedPolicySwitchLogger { config *loggerConfig,
sLog := &SchedPolicySwitchLogger{} b *baseLogData,
sLog.logType = logType logType int,
sLog.logDir = logDir prefix string,
sLog.next = nil logger *log.Logger,
sLog.baseLogData = b logDir *logDirectory) *schedPolicySwitchLogger {
sLog.logger = logger
sLog := &schedPolicySwitchLogger{
baseElektronLogger: baseElektronLogger{
baseLogData: b,
config: struct {
Enabled bool
FilenameExtension string
AllowOnConsole bool
}{
Enabled: config.SPSConfig.Enabled,
FilenameExtension: config.SPSConfig.FilenameExtension,
AllowOnConsole: config.SPSConfig.AllowOnConsole,
},
logType: logType,
next: nil,
logger: logger,
logDir: logDir,
},
}
sLog.createLogFile(prefix) sLog.createLogFile(prefix)
return sLog return sLog
} }
func (sLog SchedPolicySwitchLogger) Log(logType int, level log.Level, message string) { func (sLog schedPolicySwitchLogger) Log(logType int, level log.Level, message string) {
if sLog.logType == logType { if sLog.logType == logType {
if config.SPSConfig.Enabled { if sLog.isEnabled() {
if sLog.allowOnConsole { if sLog.config.AllowOnConsole {
sLog.logger.SetOutput(os.Stdout) sLog.logger.SetOutput(os.Stdout)
sLog.logger.WithFields(sLog.data).Log(level, message) sLog.logger.WithFields(sLog.data).Log(level, message)
} }
@ -44,10 +63,10 @@ func (sLog SchedPolicySwitchLogger) Log(logType int, level log.Level, message st
} }
} }
func (sLog SchedPolicySwitchLogger) Logf(logType int, level log.Level, msgFmtString string, args ...interface{}) { func (sLog schedPolicySwitchLogger) Logf(logType int, level log.Level, msgFmtString string, args ...interface{}) {
if sLog.logType == logType { if sLog.logType == logType {
if config.SPSConfig.Enabled { if sLog.isEnabled() {
if sLog.allowOnConsole { if sLog.config.AllowOnConsole {
sLog.logger.SetOutput(os.Stdout) sLog.logger.SetOutput(os.Stdout)
sLog.logger.WithFields(sLog.data).Logf(level, msgFmtString, args...) sLog.logger.WithFields(sLog.data).Logf(level, msgFmtString, args...)
} }
@ -65,16 +84,15 @@ func (sLog SchedPolicySwitchLogger) Logf(logType int, level log.Level, msgFmtStr
} }
} }
func (sLog *SchedPolicySwitchLogger) createLogFile(prefix string) { func (sLog *schedPolicySwitchLogger) createLogFile(prefix string) {
if config.SPSConfig.Enabled { if sLog.isEnabled() {
filename := strings.Join([]string{prefix, config.SPSConfig.FilenameExtension}, "") filename := strings.Join([]string{prefix, sLog.config.FilenameExtension}, "")
dirName := sLog.logDir.getDirName() dirName := sLog.logDir.getDirName()
if dirName != "" { if dirName != "" {
if logFile, err := os.Create(filepath.Join(dirName, filename)); err != nil { if logFile, err := os.Create(filepath.Join(dirName, filename)); err != nil {
log.Fatal("Unable to create logFile: ", err) log.Fatal("Unable to create logFile: ", err)
} else { } else {
sLog.logFile = logFile sLog.logFile = logFile
sLog.allowOnConsole = config.SPSConfig.AllowOnConsole
} }
} }
} }

View file

@ -1,4 +1,4 @@
package elektronLogging package logging
import ( import (
"os" "os"
@ -8,26 +8,45 @@ import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
) )
type SchedTraceLogger struct { type schedTraceLogger struct {
loggerImpl baseElektronLogger
} }
func NewSchedTraceLogger(b *baseLogData, logType int, prefix string, func newSchedTraceLogger(
logger *log.Logger, logDir *logDirectory) *SchedTraceLogger { config *loggerConfig,
sLog := &SchedTraceLogger{} b *baseLogData,
sLog.logType = logType logType int,
sLog.logDir = logDir prefix string,
sLog.next = nil logger *log.Logger,
sLog.baseLogData = b logDir *logDirectory) *schedTraceLogger {
sLog.logger = logger
sLog := &schedTraceLogger{
baseElektronLogger: baseElektronLogger{
baseLogData: b,
config: struct {
Enabled bool
FilenameExtension string
AllowOnConsole bool
}{
Enabled: config.SchedTraceConfig.Enabled,
FilenameExtension: config.SchedTraceConfig.FilenameExtension,
AllowOnConsole: config.SchedTraceConfig.AllowOnConsole,
},
logType: logType,
next: nil,
logger: logger,
logDir: logDir,
},
}
sLog.createLogFile(prefix) sLog.createLogFile(prefix)
return sLog return sLog
} }
func (sLog SchedTraceLogger) Log(logType int, level log.Level, message string) { func (sLog schedTraceLogger) Log(logType int, level log.Level, message string) {
if sLog.logType == logType { if sLog.logType == logType {
if config.SchedTraceConfig.Enabled { if sLog.isEnabled() {
if sLog.allowOnConsole { if sLog.config.AllowOnConsole {
sLog.logger.SetOutput(os.Stdout) sLog.logger.SetOutput(os.Stdout)
sLog.logger.WithFields(sLog.data).Log(level, message) sLog.logger.WithFields(sLog.data).Log(level, message)
} }
@ -44,10 +63,10 @@ func (sLog SchedTraceLogger) Log(logType int, level log.Level, message string) {
} }
} }
func (sLog SchedTraceLogger) Logf(logType int, level log.Level, msgFmtString string, args ...interface{}) { func (sLog schedTraceLogger) Logf(logType int, level log.Level, msgFmtString string, args ...interface{}) {
if sLog.logType == logType { if sLog.logType == logType {
if config.SchedTraceConfig.Enabled { if sLog.isEnabled() {
if sLog.allowOnConsole { if sLog.config.AllowOnConsole {
sLog.logger.SetOutput(os.Stdout) sLog.logger.SetOutput(os.Stdout)
sLog.logger.WithFields(sLog.data).Logf(level, msgFmtString, args...) sLog.logger.WithFields(sLog.data).Logf(level, msgFmtString, args...)
} }
@ -65,16 +84,15 @@ func (sLog SchedTraceLogger) Logf(logType int, level log.Level, msgFmtString str
} }
} }
func (sLog *SchedTraceLogger) createLogFile(prefix string) { func (sLog *schedTraceLogger) createLogFile(prefix string) {
if config.SchedTraceConfig.Enabled { if sLog.isEnabled() {
filename := strings.Join([]string{prefix, config.SchedTraceConfig.FilenameExtension}, "") filename := strings.Join([]string{prefix, sLog.config.FilenameExtension}, "")
dirName := sLog.logDir.getDirName() dirName := sLog.logDir.getDirName()
if dirName != "" { if dirName != "" {
if logFile, err := os.Create(filepath.Join(dirName, filename)); err != nil { if logFile, err := os.Create(filepath.Join(dirName, filename)); err != nil {
log.Fatal("Unable to create logFile: ", err) log.Fatal("Unable to create logFile: ", err)
} else { } else {
sLog.logFile = logFile sLog.logFile = logFile
sLog.allowOnConsole = config.SchedTraceConfig.AllowOnConsole
} }
} }
} }

View file

@ -1,4 +1,4 @@
package elektronLogging package logging
import ( import (
"os" "os"
@ -8,26 +8,45 @@ import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
) )
type SchedWindowLogger struct { type schedWindowLogger struct {
loggerImpl baseElektronLogger
} }
func NewSchedWindowLogger(b *baseLogData, logType int, prefix string, func newSchedWindowLogger(
logger *log.Logger, logDir *logDirectory) *SchedWindowLogger { config *loggerConfig,
sLog := &SchedWindowLogger{} b *baseLogData,
sLog.logType = logType logType int,
sLog.logDir = logDir prefix string,
sLog.next = nil logger *log.Logger,
sLog.baseLogData = b logDir *logDirectory) *schedWindowLogger {
sLog.logger = logger
sLog := &schedWindowLogger{
baseElektronLogger: baseElektronLogger{
baseLogData: b,
config: struct {
Enabled bool
FilenameExtension string
AllowOnConsole bool
}{
Enabled: config.SchedWindowConfig.Enabled,
FilenameExtension: config.SchedWindowConfig.FilenameExtension,
AllowOnConsole: config.SchedWindowConfig.AllowOnConsole,
},
logType: logType,
next: nil,
logger: logger,
logDir: logDir,
},
}
sLog.createLogFile(prefix) sLog.createLogFile(prefix)
return sLog return sLog
} }
func (sLog SchedWindowLogger) Log(logType int, level log.Level, message string) { func (sLog schedWindowLogger) Log(logType int, level log.Level, message string) {
if sLog.logType == logType { if sLog.logType == logType {
if config.SchedWindowConfig.Enabled { if sLog.isEnabled() {
if sLog.allowOnConsole { if sLog.config.AllowOnConsole {
sLog.logger.SetOutput(os.Stdout) sLog.logger.SetOutput(os.Stdout)
sLog.logger.WithFields(sLog.data).Log(level, message) sLog.logger.WithFields(sLog.data).Log(level, message)
} }
@ -45,10 +64,10 @@ func (sLog SchedWindowLogger) Log(logType int, level log.Level, message string)
} }
} }
func (sLog SchedWindowLogger) Logf(logType int, level log.Level, msgFmtString string, args ...interface{}) { func (sLog schedWindowLogger) Logf(logType int, level log.Level, msgFmtString string, args ...interface{}) {
if sLog.logType == logType { if sLog.logType == logType {
if config.SchedWindowConfig.Enabled { if sLog.isEnabled() {
if sLog.allowOnConsole { if sLog.config.AllowOnConsole {
sLog.logger.SetOutput(os.Stdout) sLog.logger.SetOutput(os.Stdout)
sLog.logger.WithFields(sLog.data).Logf(level, msgFmtString, args...) sLog.logger.WithFields(sLog.data).Logf(level, msgFmtString, args...)
} }
@ -65,16 +84,15 @@ func (sLog SchedWindowLogger) Logf(logType int, level log.Level, msgFmtString st
} }
} }
func (sLog *SchedWindowLogger) createLogFile(prefix string) { func (sLog *schedWindowLogger) createLogFile(prefix string) {
if config.SchedWindowConfig.Enabled { if sLog.isEnabled() {
filename := strings.Join([]string{prefix, config.SchedWindowConfig.FilenameExtension}, "") filename := strings.Join([]string{prefix, sLog.config.FilenameExtension}, "")
dirName := sLog.logDir.getDirName() dirName := sLog.logDir.getDirName()
if dirName != "" { if dirName != "" {
if logFile, err := os.Create(filepath.Join(dirName, filename)); err != nil { if logFile, err := os.Create(filepath.Join(dirName, filename)); err != nil {
log.Fatal("Unable to create logFile: ", err) log.Fatal("Unable to create logFile: ", err)
} else { } else {
sLog.logFile = logFile sLog.logFile = logFile
sLog.allowOnConsole = config.SchedWindowConfig.AllowOnConsole
} }
} }
} }

View file

@ -1,4 +1,4 @@
package elektronLogging package types
const ( const (
CONSOLE = iota CONSOLE = iota

View file

@ -25,8 +25,8 @@ import (
"time" "time"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
elekLog "github.com/spdfg/elektron/elektronLogging" elekLog "github.com/spdfg/elektron/logging"
elekLogTypes "github.com/spdfg/elektron/elektronLogging/types" . "github.com/spdfg/elektron/logging/types"
) )
func Start(quit chan struct{}, logging *bool, pcpConfigFile string) { func Start(quit chan struct{}, logging *bool, pcpConfigFile string) {
@ -47,7 +47,7 @@ func Start(quit chan struct{}, logging *bool, pcpConfigFile string) {
scanner.Scan() scanner.Scan()
// Write to logfile // Write to logfile
elekLog.ElektronLogger.Log(elekLogTypes.PCP, log.InfoLevel, scanner.Text()) elekLog.Log(PCP, log.InfoLevel, scanner.Text())
// Throw away first set of results // Throw away first set of results
scanner.Scan() scanner.Scan()
@ -58,14 +58,14 @@ func Start(quit chan struct{}, logging *bool, pcpConfigFile string) {
text := scanner.Text() text := scanner.Text()
if *logging { if *logging {
elekLog.ElektronLogger.Log(elekLogTypes.PCP, log.InfoLevel, text) elekLog.Log(PCP, log.InfoLevel, text)
} }
seconds++ seconds++
} }
}(logging) }(logging)
elekLog.ElektronLogger.Log(elekLogTypes.CONSOLE, log.InfoLevel, "PCP logging started") elekLog.Log(CONSOLE, log.InfoLevel, "PCP logging started")
if err := cmd.Start(); err != nil { if err := cmd.Start(); err != nil {
log.Fatal(err) log.Fatal(err)
@ -75,7 +75,7 @@ func Start(quit chan struct{}, logging *bool, pcpConfigFile string) {
select { select {
case <-quit: case <-quit:
elekLog.ElektronLogger.Log(elekLogTypes.CONSOLE, log.InfoLevel, "Stopping PCP logging in 5 seconds") elekLog.Log(CONSOLE, log.InfoLevel, "Stopping PCP logging in 5 seconds")
time.Sleep(5 * time.Second) time.Sleep(5 * time.Second)
// http://stackoverflow.com/questions/22470193/why-wont-go-kill-a-child-process-correctly // http://stackoverflow.com/questions/22470193/why-wont-go-kill-a-child-process-correctly

View file

@ -30,8 +30,8 @@ import (
"time" "time"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
elekLog "github.com/spdfg/elektron/elektronLogging" elekLog "github.com/spdfg/elektron/logging"
elekLogTypes "github.com/spdfg/elektron/elektronLogging/types" . "github.com/spdfg/elektron/logging/types"
"github.com/spdfg/elektron/pcp" "github.com/spdfg/elektron/pcp"
"github.com/spdfg/elektron/rapl" "github.com/spdfg/elektron/rapl"
) )
@ -43,7 +43,7 @@ func StartPCPLogAndExtremaDynamicCap(quit chan struct{}, logging *bool, hiThresh
cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true}
if hiThreshold < loThreshold { if hiThreshold < loThreshold {
elekLog.ElektronLogger.Log(elekLogTypes.CONSOLE, log.InfoLevel, "High threshold is lower than low threshold!") elekLog.Log(CONSOLE, log.InfoLevel, "High threshold is lower than low threshold!")
} }
pipe, err := cmd.StdoutPipe() pipe, err := cmd.StdoutPipe()
@ -59,7 +59,7 @@ func StartPCPLogAndExtremaDynamicCap(quit chan struct{}, logging *bool, hiThresh
scanner.Scan() scanner.Scan()
// Write to logfile // Write to logfile
elekLog.ElektronLogger.Log(elekLogTypes.PCP, log.InfoLevel, scanner.Text()) elekLog.Log(PCP, log.InfoLevel, scanner.Text())
headers := strings.Split(scanner.Text(), ",") headers := strings.Split(scanner.Text(), ",")
@ -95,12 +95,12 @@ func StartPCPLogAndExtremaDynamicCap(quit chan struct{}, logging *bool, hiThresh
if *logging { if *logging {
elekLog.ElektronLogger.Log(elekLogTypes.CONSOLE, log.InfoLevel, "Logging PCP...") elekLog.Log(CONSOLE, log.InfoLevel, "Logging PCP...")
text := scanner.Text() text := scanner.Text()
split := strings.Split(text, ",") split := strings.Split(text, ",")
elekLog.ElektronLogger.Log(elekLogTypes.PCP, log.InfoLevel, text) elekLog.Log(PCP, log.InfoLevel, text)
totalPower := 0.0 totalPower := 0.0
for _, powerIndex := range powerIndexes { for _, powerIndex := range powerIndexes {
@ -111,8 +111,10 @@ func StartPCPLogAndExtremaDynamicCap(quit chan struct{}, logging *bool, hiThresh
powerHistories[host].Value = power powerHistories[host].Value = power
powerHistories[host] = powerHistories[host].Next() powerHistories[host] = powerHistories[host].Next()
elekLog.ElektronLogger.WithFields(log.Fields{"Host": fmt.Sprintf("%s", indexToHost[powerIndex]), elekLog.WithFields(log.Fields{
"Power": fmt.Sprintf("%f", (power * pcp.RAPLUnits))}).Log(elekLogTypes.CONSOLE, log.InfoLevel, "") "Host": indexToHost[powerIndex],
"Power": fmt.Sprintf("%f", power*pcp.RAPLUnits),
}).Log(CONSOLE, log.InfoLevel, "")
totalPower += power totalPower += power
} }
@ -123,12 +125,13 @@ func StartPCPLogAndExtremaDynamicCap(quit chan struct{}, logging *bool, hiThresh
clusterMean := pcp.AverageClusterPowerHistory(clusterPowerHist) clusterMean := pcp.AverageClusterPowerHistory(clusterPowerHist)
elekLog.ElektronLogger.WithFields(log.Fields{"Total power": fmt.Sprintf("%f %d", clusterPower, clusterPowerHist.Len()), elekLog.WithFields(log.Fields{
"Sec Avg": fmt.Sprintf("%f", clusterMean)}).Log(elekLogTypes.CONSOLE, log.InfoLevel, "") "Total power": fmt.Sprintf("%f %d Sec", clusterPower, clusterPowerHist.Len()),
"Avg": fmt.Sprintf("%f", clusterMean),
}).Log(CONSOLE, log.InfoLevel, "")
if clusterMean > hiThreshold { if clusterMean > hiThreshold {
elekLog.ElektronLogger.Log(elekLogTypes.CONSOLE, elekLog.Log(CONSOLE, log.InfoLevel, "Need to cap a node")
log.InfoLevel, "Need to cap a node")
// Create statics for all victims and choose one to cap // Create statics for all victims and choose one to cap
victims := make([]pcp.Victim, 0, 8) victims := make([]pcp.Victim, 0, 8)
@ -149,12 +152,10 @@ func StartPCPLogAndExtremaDynamicCap(quit chan struct{}, logging *bool, hiThresh
if !cappedHosts[victim.Host] { if !cappedHosts[victim.Host] {
cappedHosts[victim.Host] = true cappedHosts[victim.Host] = true
orderCapped = append(orderCapped, victim.Host) orderCapped = append(orderCapped, victim.Host)
elekLog.ElektronLogger.WithFields(log.Fields{"Capping Victim": fmt.Sprintf("%s", victim.Host), elekLog.WithField("Avg. Wattage",
"Avg. Wattage": fmt.Sprintf("%f", victim.Watts*pcp.RAPLUnits)}).Log(elekLogTypes.CONSOLE, log.InfoLevel, "") fmt.Sprintf("%f", victim.Watts*pcp.RAPLUnits)).Logf(CONSOLE, log.InfoLevel, "Capping Victim %s", victim.Host)
if err := rapl.Cap(victim.Host, "rapl", 50); err != nil { if err := rapl.Cap(victim.Host, "rapl", 50); err != nil {
elekLog.ElektronLogger.Log(elekLogTypes.CONSOLE, elekLog.Log(CONSOLE, log.ErrorLevel, "Error capping host")
log.ErrorLevel,
"Error capping host")
} }
break // Only cap one machine at at time. break // Only cap one machine at at time.
} }
@ -167,10 +168,9 @@ func StartPCPLogAndExtremaDynamicCap(quit chan struct{}, logging *bool, hiThresh
orderCapped = orderCapped[:len(orderCapped)-1] orderCapped = orderCapped[:len(orderCapped)-1]
cappedHosts[host] = false cappedHosts[host] = false
// User RAPL package to send uncap. // User RAPL package to send uncap.
log.Printf("Uncapping host %s", host) elekLog.Logf(CONSOLE, log.InfoLevel, "Uncapping host %s", host)
elekLog.ElektronLogger.WithFields(log.Fields{"Uncapped host": host}).Log(elekLogTypes.CONSOLE, log.InfoLevel, "")
if err := rapl.Cap(host, "rapl", 100); err != nil { if err := rapl.Cap(host, "rapl", 100); err != nil {
elekLog.ElektronLogger.Log(elekLogTypes.CONSOLE, log.ErrorLevel, "Error capping host") elekLog.Log(CONSOLE, log.ErrorLevel, "Error capping host")
} }
} }
} }
@ -180,7 +180,7 @@ func StartPCPLogAndExtremaDynamicCap(quit chan struct{}, logging *bool, hiThresh
} }
}(logging, hiThreshold, loThreshold) }(logging, hiThreshold, loThreshold)
elekLog.ElektronLogger.Log(elekLogTypes.CONSOLE, log.InfoLevel, "PCP logging started") elekLog.Log(CONSOLE, log.InfoLevel, "PCP logging started")
if err := cmd.Start(); err != nil { if err := cmd.Start(); err != nil {
log.Fatal(err) log.Fatal(err)
@ -190,7 +190,7 @@ func StartPCPLogAndExtremaDynamicCap(quit chan struct{}, logging *bool, hiThresh
select { select {
case <-quit: case <-quit:
elekLog.ElektronLogger.Log(elekLogTypes.CONSOLE, log.InfoLevel, "Stopping PCP logging in 5 seconds") elekLog.Log(CONSOLE, log.InfoLevel, "Stopping PCP logging in 5 seconds")
time.Sleep(5 * time.Second) time.Sleep(5 * time.Second)
// http://stackoverflow.com/questions/22470193/why-wont-go-kill-a-child-process-correctly // http://stackoverflow.com/questions/22470193/why-wont-go-kill-a-child-process-correctly

View file

@ -32,8 +32,8 @@ import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"github.com/spdfg/elektron/constants" "github.com/spdfg/elektron/constants"
elekLog "github.com/spdfg/elektron/elektronLogging" elekLog "github.com/spdfg/elektron/logging"
elekLogTypes "github.com/spdfg/elektron/elektronLogging/types" . "github.com/spdfg/elektron/logging/types"
"github.com/spdfg/elektron/pcp" "github.com/spdfg/elektron/pcp"
"github.com/spdfg/elektron/rapl" "github.com/spdfg/elektron/rapl"
"github.com/spdfg/elektron/utilities" "github.com/spdfg/elektron/utilities"
@ -56,7 +56,7 @@ func StartPCPLogAndProgressiveExtremaCap(quit chan struct{}, logging *bool, hiTh
cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true}
if hiThreshold < loThreshold { if hiThreshold < loThreshold {
elekLog.ElektronLogger.Log(elekLogTypes.CONSOLE, log.InfoLevel, "High threshold is lower than low threshold!") elekLog.Log(CONSOLE, log.InfoLevel, "High threshold is lower than low threshold!")
} }
pipe, err := cmd.StdoutPipe() pipe, err := cmd.StdoutPipe()
@ -72,7 +72,7 @@ func StartPCPLogAndProgressiveExtremaCap(quit chan struct{}, logging *bool, hiTh
scanner.Scan() scanner.Scan()
// Write to logfile // Write to logfile
elekLog.ElektronLogger.Log(elekLogTypes.PCP, log.InfoLevel, scanner.Text()) elekLog.Log(PCP, log.InfoLevel, scanner.Text())
headers := strings.Split(scanner.Text(), ",") headers := strings.Split(scanner.Text(), ",")
@ -111,11 +111,11 @@ func StartPCPLogAndProgressiveExtremaCap(quit chan struct{}, logging *bool, hiTh
for scanner.Scan() { for scanner.Scan() {
if *logging { if *logging {
elekLog.ElektronLogger.Log(elekLogTypes.CONSOLE, log.InfoLevel, "Logging PCP...") elekLog.Log(CONSOLE, log.InfoLevel, "Logging PCP...")
split := strings.Split(scanner.Text(), ",") split := strings.Split(scanner.Text(), ",")
text := scanner.Text() text := scanner.Text()
elekLog.ElektronLogger.Log(elekLogTypes.PCP, log.InfoLevel, text) elekLog.Log(PCP, log.InfoLevel, text)
totalPower := 0.0 totalPower := 0.0
for _, powerIndex := range powerIndexes { for _, powerIndex := range powerIndexes {
@ -126,8 +126,10 @@ func StartPCPLogAndProgressiveExtremaCap(quit chan struct{}, logging *bool, hiTh
powerHistories[host].Value = power powerHistories[host].Value = power
powerHistories[host] = powerHistories[host].Next() powerHistories[host] = powerHistories[host].Next()
elekLog.ElektronLogger.WithFields(log.Fields{"Host": fmt.Sprintf("%s", indexToHost[powerIndex]), elekLog.WithFields(log.Fields{
"Power": fmt.Sprintf("%f", (power * pcp.RAPLUnits))}).Log(elekLogTypes.CONSOLE, log.InfoLevel, "") "Host": indexToHost[powerIndex],
"Power": fmt.Sprintf("%f", power*pcp.RAPLUnits),
}).Log(CONSOLE, log.InfoLevel, "")
totalPower += power totalPower += power
} }
clusterPower := totalPower * pcp.RAPLUnits clusterPower := totalPower * pcp.RAPLUnits
@ -137,15 +139,16 @@ func StartPCPLogAndProgressiveExtremaCap(quit chan struct{}, logging *bool, hiTh
clusterMean := pcp.AverageClusterPowerHistory(clusterPowerHist) clusterMean := pcp.AverageClusterPowerHistory(clusterPowerHist)
elekLog.ElektronLogger.WithFields(log.Fields{"Total power": fmt.Sprintf("%f %d", clusterPower, clusterPowerHist.Len()), elekLog.WithFields(log.Fields{
"Sec Avg": fmt.Sprintf("%f", clusterMean)}).Log(elekLogTypes.CONSOLE, log.InfoLevel, "") "Total power": fmt.Sprintf("%f %d Sec", clusterPower, clusterPowerHist.Len()),
"Avg": fmt.Sprintf("%f", clusterMean),
}).Log(CONSOLE, log.InfoLevel, "")
if clusterMean >= hiThreshold { if clusterMean >= hiThreshold {
elekLog.ElektronLogger.Log(elekLogTypes.CONSOLE, log.InfoLevel, "Need to cap a node") elekLog.Log(CONSOLE, log.InfoLevel, "Need to cap a node")
elekLog.Logf(CONSOLE, log.InfoLevel, "Cap values of capped victims %v", cappedVictims)
elekLog.Logf(CONSOLE, log.InfoLevel, "Cap values of victims to uncap %v", orderCappedVictims)
elekLog.ElektronLogger.WithFields(log.Fields{"Cap values of capped victims": fmt.Sprintf("%v", cappedVictims)}).Log(elekLogTypes.CONSOLE, log.InfoLevel, "")
elekLog.ElektronLogger.WithFields(log.Fields{"Cap values of victims to uncap": fmt.Sprintf("%v", orderCappedVictims)}).Log(elekLogTypes.CONSOLE, log.InfoLevel, "")
// Create statics for all victims and choose one to cap // Create statics for all victims and choose one to cap
victims := make([]pcp.Victim, 0, 8) victims := make([]pcp.Victim, 0, 8)
@ -173,10 +176,10 @@ func StartPCPLogAndProgressiveExtremaCap(quit chan struct{}, logging *bool, hiTh
// Need to cap this victim. // Need to cap this victim.
if err := rapl.Cap(victims[i].Host, "rapl", 50.0); err != nil { if err := rapl.Cap(victims[i].Host, "rapl", 50.0); err != nil {
elekLog.ElektronLogger.WithFields(log.Fields{"Error capping host": fmt.Sprintf("%s", victims[i].Host)}).Log(elekLogTypes.CONSOLE, log.ErrorLevel, "") elekLog.Logf(CONSOLE, log.ErrorLevel, "Error capping host %s", victims[i].Host)
} else { } else {
elekLog.ElektronLogger.Logf(elekLogTypes.CONSOLE, log.InfoLevel, "Capped host[%s] at %f", victims[i].Host, 50.0) elekLog.Logf(CONSOLE, log.InfoLevel, "Capped host[%s] at %f", victims[i].Host, 50.0)
// Keeping track of this victim and it's cap value // Keeping track of this victim and it's cap value
cappedVictims[victims[i].Host] = 50.0 cappedVictims[victims[i].Host] = 50.0
newVictimFound = true newVictimFound = true
@ -200,11 +203,10 @@ func StartPCPLogAndProgressiveExtremaCap(quit chan struct{}, logging *bool, hiTh
newCapValue := getNextCapValue(capValue, 2) newCapValue := getNextCapValue(capValue, 2)
if err := rapl.Cap(alreadyCappedHosts[i], "rapl", newCapValue); err != nil { if err := rapl.Cap(alreadyCappedHosts[i], "rapl", newCapValue); err != nil {
elekLog.ElektronLogger.WithFields(log.Fields{"Error capping host": fmt.Sprintf("%s", alreadyCappedHosts[i])}).Log(elekLogTypes.CONSOLE, log.ErrorLevel, "") elekLog.Logf(CONSOLE, log.ErrorLevel, "Error capping host %s", alreadyCappedHosts[i])
} else { } else {
// Successful cap // Successful cap
elekLog.ElektronLogger.Logf(elekLogTypes.CONSOLE, log.InfoLevel, elekLog.Logf(CONSOLE, log.InfoLevel, "Capped host[%s] at %f", alreadyCappedHosts[i], newCapValue)
"Capped host[%s] at %f", alreadyCappedHosts[i], newCapValue)
// Checking whether this victim can be capped further // Checking whether this victim can be capped further
if newCapValue <= constants.LowerCapLimit { if newCapValue <= constants.LowerCapLimit {
// Deleting victim from cappedVictims. // Deleting victim from cappedVictims.
@ -227,15 +229,15 @@ func StartPCPLogAndProgressiveExtremaCap(quit chan struct{}, logging *bool, hiTh
} }
} }
if !canCapAlreadyCappedVictim { if !canCapAlreadyCappedVictim {
elekLog.ElektronLogger.Log(elekLogTypes.CONSOLE, log.InfoLevel, "No Victim left to cap") elekLog.Log(CONSOLE, log.InfoLevel, "No Victim left to cap")
} }
} }
} else if clusterMean < loThreshold { } else if clusterMean < loThreshold {
elekLog.ElektronLogger.Log(elekLogTypes.CONSOLE, log.InfoLevel, "Need to uncap a node") elekLog.Log(CONSOLE, log.InfoLevel, "Need to uncap a node")
elekLog.ElektronLogger.WithFields(log.Fields{"Cap values of capped victims": fmt.Sprintf("%v", cappedVictims)}).Log(elekLogTypes.CONSOLE, log.InfoLevel, "") elekLog.Logf(CONSOLE, log.InfoLevel, "Cap values of capped victims - %v", cappedVictims)
elekLog.ElektronLogger.WithFields(log.Fields{"Cap values of victims to uncap": fmt.Sprintf("%v", orderCappedVictims)}).Log(elekLogTypes.CONSOLE, log.InfoLevel, "") elekLog.Logf(CONSOLE, log.InfoLevel, "Cap values of victims to uncap - %v", orderCappedVictims)
if len(orderCapped) > 0 { if len(orderCapped) > 0 {
// We pick the host that is capped the most to uncap. // We pick the host that is capped the most to uncap.
orderCappedToSort := utilities.GetPairList(orderCappedVictims) orderCappedToSort := utilities.GetPairList(orderCappedVictims)
@ -246,10 +248,10 @@ func StartPCPLogAndProgressiveExtremaCap(quit chan struct{}, logging *bool, hiTh
newUncapValue := orderCappedVictims[hostToUncap] * 2.0 newUncapValue := orderCappedVictims[hostToUncap] * 2.0
if err := rapl.Cap(hostToUncap, "rapl", newUncapValue); err != nil { if err := rapl.Cap(hostToUncap, "rapl", newUncapValue); err != nil {
elekLog.ElektronLogger.WithFields(log.Fields{"Error uncapping host": fmt.Sprintf("%s", hostToUncap)}).Log(elekLogTypes.CONSOLE, log.ErrorLevel, "") elekLog.Logf(CONSOLE, log.ErrorLevel, "Error uncapping host %s", hostToUncap)
} else { } else {
// Successful uncap // Successful uncap
elekLog.ElektronLogger.Logf(elekLogTypes.CONSOLE, log.InfoLevel, "Uncapped host[%s] to %f", hostToUncap, newUncapValue) elekLog.Logf(CONSOLE, log.InfoLevel, "Uncapped host[%s] to %f", hostToUncap, newUncapValue)
// Can we uncap this host further. If not, then we remove its entry from orderCapped // Can we uncap this host further. If not, then we remove its entry from orderCapped
if newUncapValue >= 100.0 { // can compare using == if newUncapValue >= 100.0 { // can compare using ==
// Deleting entry from orderCapped // Deleting entry from orderCapped
@ -270,7 +272,7 @@ func StartPCPLogAndProgressiveExtremaCap(quit chan struct{}, logging *bool, hiTh
} }
} }
} else { } else {
elekLog.ElektronLogger.Log(elekLogTypes.CONSOLE, log.InfoLevel, "No host staged for Uncapped") elekLog.Log(CONSOLE, log.InfoLevel, "No host staged for Uncapped")
} }
} }
} }
@ -279,7 +281,7 @@ func StartPCPLogAndProgressiveExtremaCap(quit chan struct{}, logging *bool, hiTh
}(logging, hiThreshold, loThreshold) }(logging, hiThreshold, loThreshold)
elekLog.ElektronLogger.Log(elekLogTypes.CONSOLE, log.InfoLevel, "PCP logging started") elekLog.Log(CONSOLE, log.InfoLevel, "PCP logging started")
if err := cmd.Start(); err != nil { if err := cmd.Start(); err != nil {
log.Fatal(err) log.Fatal(err)
} }
@ -288,7 +290,7 @@ func StartPCPLogAndProgressiveExtremaCap(quit chan struct{}, logging *bool, hiTh
select { select {
case <-quit: case <-quit:
elekLog.ElektronLogger.Log(elekLogTypes.CONSOLE, log.InfoLevel, "Stopping PCP logging in 5 seconds") elekLog.Log(CONSOLE, log.InfoLevel, "Stopping PCP logging in 5 seconds")
time.Sleep(5 * time.Second) time.Sleep(5 * time.Second)
// http://stackoverflow.com/questions/22470193/why-wont-go-kill-a-child-process-correctly // http://stackoverflow.com/questions/22470193/why-wont-go-kill-a-child-process-correctly

View file

@ -31,8 +31,8 @@ import (
sched "github.com/mesos/mesos-go/api/v0/scheduler" sched "github.com/mesos/mesos-go/api/v0/scheduler"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"github.com/spdfg/elektron/def" "github.com/spdfg/elektron/def"
elekLog "github.com/spdfg/elektron/elektronLogging" elekLog "github.com/spdfg/elektron/logging"
elekLogTypes "github.com/spdfg/elektron/elektronLogging/types" . "github.com/spdfg/elektron/logging/types"
"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"
@ -226,8 +226,11 @@ func main() {
if strings.Contains(*pcplogPrefix, "/") { if strings.Contains(*pcplogPrefix, "/") {
log.Fatal("log file prefix should not contain '/'.") log.Fatal("log file prefix should not contain '/'.")
} }
// Build Logger for elektron.
elekLog.BuildLogger(*pcplogPrefix, *logConfigFilename) // Build Logger.
if err := elekLog.BuildLogger(*pcplogPrefix, *logConfigFilename); err != nil {
log.Fatal(err)
}
// Starting PCP logging. // Starting PCP logging.
if noPowercap { if noPowercap {
@ -282,8 +285,10 @@ func main() {
// Starting the scheduler driver. // Starting the scheduler driver.
if status, err := driver.Run(); err != nil { if status, err := driver.Run(); err != nil {
elekLog.ElektronLogger.WithFields(log.Fields{"status": status.String(), "error": err.Error()}).Log(elekLogTypes.CONSOLE, elekLog.WithFields(log.Fields{
log.ErrorLevel, "Framework stopped ") "status": status.String(),
"error": err.Error(),
}).Log(CONSOLE, log.ErrorLevel, "Framework stopped ")
} }
elekLog.ElektronLogger.Log(elekLogTypes.CONSOLE, log.InfoLevel, "Exiting...") elekLog.Log(CONSOLE, log.InfoLevel, "Exiting...")
} }

View file

@ -30,8 +30,8 @@ import (
sched "github.com/mesos/mesos-go/api/v0/scheduler" sched "github.com/mesos/mesos-go/api/v0/scheduler"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"github.com/spdfg/elektron/def" "github.com/spdfg/elektron/def"
elekLog "github.com/spdfg/elektron/elektronLogging" elekLog "github.com/spdfg/elektron/logging"
elekLogTypes "github.com/spdfg/elektron/elektronLogging/types" . "github.com/spdfg/elektron/logging/types"
"github.com/spdfg/elektron/utilities" "github.com/spdfg/elektron/utilities"
"github.com/spdfg/elektron/utilities/schedUtils" "github.com/spdfg/elektron/utilities/schedUtils"
) )
@ -250,31 +250,34 @@ func (s *BaseScheduler) StatusUpdate(driver sched.SchedulerDriver, status *mesos
func (s *BaseScheduler) LogTaskStarting(ts *def.Task, offer *mesos.Offer) { func (s *BaseScheduler) LogTaskStarting(ts *def.Task, offer *mesos.Offer) {
if ts == nil { if ts == nil {
elekLog.ElektronLogger.WithFields(log.Fields{"host": fmt.Sprintf("%s", offer.GetHostname())}).Log(elekLogTypes.CONSOLE, log.InfoLevel, "TASKS STARTING...") elekLog.WithField("host", offer.GetHostname()).Log(CONSOLE, log.InfoLevel, "TASKS STARTING...")
} else { } else {
elekLog.ElektronLogger.WithFields(log.Fields{"task": fmt.Sprintf("%s", ts.Name), elekLog.WithFields(log.Fields{
"Instance": fmt.Sprintf("%d", *ts.Instances), "host": fmt.Sprintf("%s", offer.GetHostname())}).Log(elekLogTypes.CONSOLE, "task": ts.Name,
log.InfoLevel, "TASK STARTING... ") "Instance": fmt.Sprintf("%d", *ts.Instances),
"host": offer.GetHostname(),
}).Log(CONSOLE, log.InfoLevel, "TASK STARTING... ")
} }
} }
func (s *BaseScheduler) LogTaskWattsConsideration(ts def.Task, host string, wattsToConsider float64) { func (s *BaseScheduler) LogTaskWattsConsideration(ts def.Task, host string, wattsToConsider float64) {
elekLog.ElektronLogger.WithFields(log.Fields{"task": ts.Name, "host": host, "Watts": fmt.Sprintf("%f", wattsToConsider)}).Log(elekLogTypes.CONSOLE, log.InfoLevel, "Watts considered for ") elekLog.WithFields(log.Fields{
"task": ts.Name,
"host": host,
"Watts": fmt.Sprintf("%f", wattsToConsider),
}).Log(CONSOLE, log.InfoLevel, "Watts considered for ")
} }
func (s *BaseScheduler) LogOffersReceived(offers []*mesos.Offer) { func (s *BaseScheduler) LogOffersReceived(offers []*mesos.Offer) {
elekLog.ElektronLogger.WithFields(log.Fields{"Resource offers received": fmt.Sprintf("%d", len(offers))}).Log(elekLogTypes.CONSOLE, elekLog.WithField("numOffers", fmt.Sprintf("%d", len(offers))).Log(CONSOLE, log.InfoLevel, "Resource offers received")
log.InfoLevel, "")
} }
func (s *BaseScheduler) LogNoPendingTasksDeclineOffers(offer *mesos.Offer) { func (s *BaseScheduler) LogNoPendingTasksDeclineOffers(offer *mesos.Offer) {
elekLog.ElektronLogger.WithFields(log.Fields{"DECLINING OFFER for host": fmt.Sprintf("%s", offer.GetHostname())}).Log(elekLogTypes.CONSOLE, elekLog.Logf(CONSOLE, log.WarnLevel, "DECLINING OFFER for host %s. No tasks left to schedule", offer.GetHostname())
log.WarnLevel, "No tasks left to schedule ")
} }
func (s *BaseScheduler) LogNumberOfRunningTasks() { func (s *BaseScheduler) LogNumberOfRunningTasks() {
elekLog.ElektronLogger.WithFields(log.Fields{"Number of tasks still Running": fmt.Sprintf("%d", s.tasksRunning)}).Log(elekLogTypes.CONSOLE, elekLog.Logf(CONSOLE, log.InfoLevel, "Number of tasks still running %d", s.tasksRunning)
log.InfoLevel, "")
} }
func (s *BaseScheduler) LogCoLocatedTasks(slaveID string) { func (s *BaseScheduler) LogCoLocatedTasks(slaveID string) {
@ -284,67 +287,67 @@ func (s *BaseScheduler) LogCoLocatedTasks(slaveID string) {
buffer.WriteString(fmt.Sprintln(taskName)) buffer.WriteString(fmt.Sprintln(taskName))
} }
s.TasksRunningMutex.Unlock() s.TasksRunningMutex.Unlock()
elekLog.ElektronLogger.WithFields(log.Fields{"Colocated with": fmt.Sprintf("%s", buffer.String())}).Log(elekLogTypes.CONSOLE, elekLog.WithField("Tasks", buffer.String()).Log(CONSOLE, log.InfoLevel, "Colocated with")
log.InfoLevel, "")
} }
func (s *BaseScheduler) LogSchedTrace(taskToSchedule *mesos.TaskInfo, offer *mesos.Offer) { func (s *BaseScheduler) LogSchedTrace(taskToSchedule *mesos.TaskInfo, offer *mesos.Offer) {
elekLog.ElektronLogger.WithFields(log.Fields{offer.GetHostname(): fmt.Sprintf("%s", taskToSchedule.GetTaskId().GetValue())}).Log(elekLogTypes.SCHED_TRACE, log.InfoLevel, "") elekLog.WithField(offer.GetHostname(), taskToSchedule.GetTaskId().GetValue()).Log(SCHED_TRACE, log.InfoLevel, "")
} }
func (s *BaseScheduler) LogTerminateScheduler() { func (s *BaseScheduler) LogTerminateScheduler() {
elekLog.ElektronLogger.Log(elekLogTypes.CONSOLE, log.InfoLevel, "Done scheduling all tasks!") elekLog.Log(CONSOLE, log.InfoLevel, "Done scheduling all tasks!")
} }
func (s *BaseScheduler) LogInsufficientResourcesDeclineOffer(offer *mesos.Offer, func (s *BaseScheduler) LogInsufficientResourcesDeclineOffer(offer *mesos.Offer,
offerResources ...interface{}) { offerResources ...interface{}) {
buffer := bytes.Buffer{} buffer := bytes.Buffer{}
buffer.WriteString(fmt.Sprintf("<CPU: %f, RAM: %f, Watts: %f>", offerResources...)) buffer.WriteString(fmt.Sprintf("<CPU: %f, RAM: %f, Watts: %f>", offerResources...))
elekLog.ElektronLogger.WithFields(log.Fields{"Offer Resources": fmt.Sprintf("%s", buffer.String())}).Log(elekLogTypes.CONSOLE, elekLog.WithField("Offer Resources", buffer.String()).Log(CONSOLE,
log.WarnLevel, "DECLINING OFFER... Offer has insufficient resources to launch a task") log.WarnLevel, "DECLINING OFFER... Offer has insufficient resources to launch a task")
} }
func (s *BaseScheduler) LogOfferRescinded(offerID *mesos.OfferID) { func (s *BaseScheduler) LogOfferRescinded(offerID *mesos.OfferID) {
elekLog.ElektronLogger.WithFields(log.Fields{"OfferID": fmt.Sprintf("%s", offerID)}).Log(elekLogTypes.CONSOLE, elekLog.WithField("OfferID", *offerID.Value).Log(CONSOLE, log.ErrorLevel, "OFFER RESCINDED")
log.ErrorLevel, "OFFER RESCINDED")
} }
func (s *BaseScheduler) LogSlaveLost(slaveID *mesos.SlaveID) { func (s *BaseScheduler) LogSlaveLost(slaveID *mesos.SlaveID) {
elekLog.ElektronLogger.WithFields(log.Fields{"SlaveID": fmt.Sprintf("%s", slaveID)}).Log(elekLogTypes.CONSOLE, elekLog.WithField("SlaveID", *slaveID.Value).Log(CONSOLE, log.ErrorLevel, "SLAVE LOST")
log.ErrorLevel, "SLAVE LOST")
} }
func (s *BaseScheduler) LogExecutorLost(executorID *mesos.ExecutorID, slaveID *mesos.SlaveID) { func (s *BaseScheduler) LogExecutorLost(executorID *mesos.ExecutorID, slaveID *mesos.SlaveID) {
elekLog.ElektronLogger.WithFields(log.Fields{"ExecutorID": fmt.Sprintf("%s", executorID), "SlaveID": fmt.Sprintf("%s", slaveID)}).Log(elekLogTypes.CONSOLE, log.ErrorLevel, "EXECUTOR LOST") elekLog.WithFields(log.Fields{
"ExecutorID": *executorID.Value,
"SlaveID": *slaveID.Value,
}).Log(CONSOLE, log.ErrorLevel, "EXECUTOR LOST")
} }
func (s *BaseScheduler) LogFrameworkMessage(executorID *mesos.ExecutorID, func (s *BaseScheduler) LogFrameworkMessage(executorID *mesos.ExecutorID,
slaveID *mesos.SlaveID, message string) { slaveID *mesos.SlaveID, message string) {
elekLog.ElektronLogger.WithFields(log.Fields{"Received Framework message from executor": executorID}).Log(elekLogTypes.CONSOLE, elekLog.Logf(CONSOLE, log.InfoLevel, "Received Framework message from executor %v", executorID)
log.InfoLevel, message)
} }
func (s *BaseScheduler) LogMesosError(err string) { func (s *BaseScheduler) LogMesosError(err string) {
elekLog.ElektronLogger.WithFields(log.Fields{"MESOS CONSOLE": fmt.Sprintf("%v", err)}).Log(elekLogTypes.CONSOLE, elekLog.Logf(CONSOLE, log.ErrorLevel, "MESOS CONSOLE %v", err)
log.ErrorLevel, "")
} }
func (s *BaseScheduler) LogElectronError(err error) { func (s *BaseScheduler) LogElectronError(err error) {
elekLog.ElektronLogger.WithFields(log.Fields{"ELECTRON CONSOLE": fmt.Sprintf("%v", err)}).Log(elekLogTypes.CONSOLE, log.ErrorLevel, "") elekLog.Logf(CONSOLE, log.ErrorLevel, "ELEKTRON CONSOLE %v", err)
} }
func (s *BaseScheduler) LogFrameworkRegistered(frameworkID *mesos.FrameworkID, func (s *BaseScheduler) LogFrameworkRegistered(frameworkID *mesos.FrameworkID,
masterInfo *mesos.MasterInfo) { masterInfo *mesos.MasterInfo) {
elekLog.ElektronLogger.WithFields(log.Fields{"frameworkID": fmt.Sprintf("%s", frameworkID), "master": fmt.Sprintf("%v", masterInfo)}).Log(elekLogTypes.CONSOLE, log.InfoLevel, "FRAMEWORK REGISTERED!") elekLog.WithFields(log.Fields{
"frameworkID": *frameworkID.Value,
"master": fmt.Sprintf("%v", masterInfo),
}).Log(CONSOLE, log.InfoLevel, "FRAMEWORK REGISTERED!")
} }
func (s *BaseScheduler) LogFrameworkReregistered(masterInfo *mesos.MasterInfo) { func (s *BaseScheduler) LogFrameworkReregistered(masterInfo *mesos.MasterInfo) {
elekLog.ElektronLogger.WithFields(log.Fields{"master": fmt.Sprintf("%v", masterInfo)}).Log(elekLogTypes.CONSOLE, elekLog.WithField("master", fmt.Sprintf("%v", masterInfo)).Log(CONSOLE, log.InfoLevel, "Framework re-registered")
log.InfoLevel, "Framework re-registered")
} }
func (s *BaseScheduler) LogDisconnected() { func (s *BaseScheduler) LogDisconnected() {
elekLog.ElektronLogger.Log(elekLogTypes.CONSOLE, log.WarnLevel, "Framework disconnected with master") elekLog.Log(CONSOLE, log.WarnLevel, "Framework disconnected with master")
} }
func (s *BaseScheduler) LogTaskStatusUpdate(status *mesos.TaskStatus) { func (s *BaseScheduler) LogTaskStatusUpdate(status *mesos.TaskStatus) {
@ -356,12 +359,15 @@ func (s *BaseScheduler) LogTaskStatusUpdate(status *mesos.TaskStatus) {
default: default:
level = log.InfoLevel level = log.InfoLevel
} }
elekLog.ElektronLogger.WithFields(log.Fields{"task": fmt.Sprintf("%s", *status.TaskId.Value), "state": NameFor(status.State)}).Log(elekLogTypes.CONSOLE, level, "Task Status received") elekLog.WithFields(log.Fields{
"task": *status.TaskId.Value,
"state": NameFor(status.State),
}).Log(CONSOLE, level, "Task Status received")
} }
func (s *BaseScheduler) LogSchedPolicySwitch(name string, nextPolicy SchedPolicyState) { func (s *BaseScheduler) LogSchedPolicySwitch(name string, nextPolicy SchedPolicyState) {
logSPS := func() { logSPS := func() {
elekLog.ElektronLogger.WithFields(log.Fields{"Name": name}).Log(elekLogTypes.SPS, log.InfoLevel, "") elekLog.WithField("Name", name).Log(SPS, log.InfoLevel, "")
} }
if s.hasReceivedResourceOffers && (s.curSchedPolicy != nextPolicy) { if s.hasReceivedResourceOffers && (s.curSchedPolicy != nextPolicy) {
logSPS() logSPS()
@ -370,10 +376,13 @@ func (s *BaseScheduler) LogSchedPolicySwitch(name string, nextPolicy SchedPolicy
} }
// Logging the size of the scheduling window and the scheduling policy // Logging the size of the scheduling window and the scheduling policy
// that is going to schedule the tasks in the scheduling window. // that is going to schedule the tasks in the scheduling window.
elekLog.ElektronLogger.WithFields(log.Fields{"Window size": fmt.Sprintf("%d", s.schedWindowSize), "Name": name}).Log(elekLogTypes.SCHED_WINDOW, log.InfoLevel, "") elekLog.WithFields(log.Fields{
"Window size": fmt.Sprintf("%d", s.schedWindowSize),
"Name": name,
}).Log(SCHED_WINDOW, log.InfoLevel, "")
} }
func (s *BaseScheduler) LogClsfnAndTaskDistOverhead(overhead time.Duration) { func (s *BaseScheduler) LogClsfnAndTaskDistOverhead(overhead time.Duration) {
// Logging the overhead in microseconds. // Logging the overhead in microseconds.
elekLog.ElektronLogger.WithFields(log.Fields{"Overhead in microseconds": fmt.Sprintf("%f", float64(overhead.Nanoseconds())/1000.0)}).Log(elekLogTypes.CLSFN_TASKDISTR_OVERHEAD, log.InfoLevel, "") elekLog.WithField("Overhead in microseconds", fmt.Sprintf("%f", float64(overhead.Nanoseconds())/1000.0)).Log(CLSFN_TASKDISTR_OVERHEAD, log.InfoLevel, "")
} }

View file

@ -27,8 +27,8 @@ import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"github.com/spdfg/elektron/constants" "github.com/spdfg/elektron/constants"
"github.com/spdfg/elektron/def" "github.com/spdfg/elektron/def"
elekLog "github.com/spdfg/elektron/elektronLogging" elekLog "github.com/spdfg/elektron/logging"
elekLogTypes "github.com/spdfg/elektron/elektronLogging/types" . "github.com/spdfg/elektron/logging/types"
"github.com/spdfg/elektron/utilities" "github.com/spdfg/elektron/utilities"
"github.com/spdfg/elektron/utilities/mesosUtils" "github.com/spdfg/elektron/utilities/mesosUtils"
) )
@ -36,10 +36,10 @@ import (
func coLocated(tasks map[string]bool, s BaseScheduler) { func coLocated(tasks map[string]bool, s BaseScheduler) {
for _, task := range tasks { for _, task := range tasks {
elekLog.ElektronLogger.WithFields(log.Fields{"Task": task}).Log(elekLogTypes.CONSOLE, log.InfoLevel, "") elekLog.WithField("Task", fmt.Sprintf("%v", task)).Log(CONSOLE, log.InfoLevel, "")
} }
elekLog.ElektronLogger.Log(elekLogTypes.CONSOLE, log.InfoLevel, "---------------------") elekLog.Log(CONSOLE, log.InfoLevel, "---------------------")
} }
// Get the powerClass of the given hostname. // Get the powerClass of the given hostname.

View file

@ -26,8 +26,8 @@ import (
sched "github.com/mesos/mesos-go/api/v0/scheduler" sched "github.com/mesos/mesos-go/api/v0/scheduler"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"github.com/spdfg/elektron/def" "github.com/spdfg/elektron/def"
elekLog "github.com/spdfg/elektron/elektronLogging" elekLog "github.com/spdfg/elektron/logging"
elekLogTypes "github.com/spdfg/elektron/elektronLogging/types" . "github.com/spdfg/elektron/logging/types"
) )
type SchedPolicyContext interface { type SchedPolicyContext interface {
@ -90,8 +90,7 @@ func switchTaskDistBased(baseSchedRef *BaseScheduler) string {
// Determine the distribution of tasks in the new scheduling window. // Determine the distribution of tasks in the new scheduling window.
taskDist, err := def.GetTaskDistributionInWindow(baseSchedRef.schedWindowSize, baseSchedRef.tasks) taskDist, err := def.GetTaskDistributionInWindow(baseSchedRef.schedWindowSize, baseSchedRef.tasks)
baseSchedRef.LogClsfnAndTaskDistOverhead(time.Now().Sub(startTime)) baseSchedRef.LogClsfnAndTaskDistOverhead(time.Now().Sub(startTime))
elekLog.ElektronLogger.WithFields(log.Fields{"Task Distribution": fmt.Sprintf("%f", taskDist)}).Log(elekLogTypes.CONSOLE, elekLog.WithField("Task Distribution", fmt.Sprintf("%f", taskDist)).Log(CONSOLE, log.InfoLevel, "Switching... ")
log.InfoLevel, "Switching... ")
if err != nil { if err != nil {
// All the tasks in the window were only classified into 1 cluster. // All the tasks in the window were only classified into 1 cluster.
// Max-Min and Max-GreedyMins would work the same way as Bin-Packing for this situation. // Max-Min and Max-GreedyMins would work the same way as Bin-Packing for this situation.
@ -219,9 +218,11 @@ func (bsps *baseSchedPolicyState) SwitchIfNecessary(spc SchedPolicyContext) {
switchToPolicyName = switchBasedOn[baseSchedRef.schedPolSwitchCriteria](baseSchedRef) switchToPolicyName = switchBasedOn[baseSchedRef.schedPolSwitchCriteria](baseSchedRef)
} else { } else {
// We continue working with the currently deployed scheduling policy. // We continue working with the currently deployed scheduling policy.
log.Println("Continuing with the current scheduling policy...") elekLog.Log(CONSOLE, log.InfoLevel, "Continuing with the current scheduling policy...")
log.Printf("TasksScheduled[%d], SchedWindowSize[%d]", bsps.numTasksScheduled, elekLog.WithFields(log.Fields{
baseSchedRef.schedWindowSize) "TasksScheduled": fmt.Sprintf("%d", bsps.numTasksScheduled),
"SchedWindowSize": fmt.Sprintf("%d", baseSchedRef.schedWindowSize),
}).Log(CONSOLE, log.InfoLevel, "")
return return
} }
} }
@ -233,9 +234,11 @@ func (bsps *baseSchedPolicyState) SwitchIfNecessary(spc SchedPolicyContext) {
bsps.numTasksScheduled = 0 bsps.numTasksScheduled = 0
} else { } else {
// We continue working with the currently deployed scheduling policy. // We continue working with the currently deployed scheduling policy.
log.Println("Continuing with the current scheduling policy...") elekLog.Log(CONSOLE, log.InfoLevel, "Continuing with the current scheduling policy...")
log.Printf("TasksScheduled[%d], SchedWindowSize[%d]", bsps.numTasksScheduled, elekLog.WithFields(log.Fields{
baseSchedRef.schedWindowSize) "TasksScheduled": fmt.Sprintf("%d", bsps.numTasksScheduled),
"SchedWindowSize": fmt.Sprintf("%d", baseSchedRef.schedWindowSize),
}).Log(CONSOLE, log.InfoLevel, "")
return return
} }
} }

View file

@ -24,8 +24,8 @@ import (
mesos "github.com/mesos/mesos-go/api/v0/mesosproto" mesos "github.com/mesos/mesos-go/api/v0/mesosproto"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"github.com/spdfg/elektron/constants" "github.com/spdfg/elektron/constants"
elekLog "github.com/spdfg/elektron/elektronLogging" elekLog "github.com/spdfg/elektron/logging"
elekLogTypes "github.com/spdfg/elektron/elektronLogging/types" . "github.com/spdfg/elektron/logging/types"
) )
func OfferAgg(offer *mesos.Offer) (float64, float64, float64) { func OfferAgg(offer *mesos.Offer) (float64, float64, float64) {
@ -90,13 +90,15 @@ func UpdateEnvironment(offer *mesos.Offer) {
var host = offer.GetHostname() var host = offer.GetHostname()
// If this host is not present in the set of hosts. // If this host is not present in the set of hosts.
if _, ok := constants.Hosts[host]; !ok { if _, ok := constants.Hosts[host]; !ok {
elekLog.ElektronLogger.WithFields(log.Fields{"Adding host": host}).Log(elekLogTypes.CONSOLE, log.InfoLevel, "New host detected") elekLog.WithField("host", host).Log(CONSOLE, log.InfoLevel, "New host detected")
// Add this host. // Add this host.
constants.Hosts[host] = struct{}{} constants.Hosts[host] = struct{}{}
// Get the power class of this host. // Get the power class of this host.
class := PowerClass(offer) class := PowerClass(offer)
elekLog.ElektronLogger.WithFields(log.Fields{"host": host, "PowerClass": class}).Log(elekLogTypes.CONSOLE, elekLog.WithFields(log.Fields{
log.InfoLevel, "Registering the power class...") "host": host,
"PowerClass": class,
}).Log(CONSOLE, log.InfoLevel, "Registering the power class...")
// If new power class, register the power class. // If new power class, register the power class.
if _, ok := constants.PowerClasses[class]; !ok { if _, ok := constants.PowerClasses[class]; !ok {
constants.PowerClasses[class] = make(map[string]struct{}) constants.PowerClasses[class] = make(map[string]struct{})

View file

@ -21,8 +21,8 @@ package schedUtils
import ( import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"github.com/spdfg/elektron/def" "github.com/spdfg/elektron/def"
elekLog "github.com/spdfg/elektron/elektronLogging" elekLog "github.com/spdfg/elektron/logging"
elekLogTypes "github.com/spdfg/elektron/elektronLogging/types" . "github.com/spdfg/elektron/logging/types"
"github.com/spdfg/elektron/utilities" "github.com/spdfg/elektron/utilities"
) )
@ -78,7 +78,7 @@ func (s *fillNextOfferCycle) apply(taskQueue []def.Task) (int, int) {
for _, task := range taskQueue { for _, task := range taskQueue {
numberOfTasksTraversed++ numberOfTasksTraversed++
for i := *task.Instances; i > 0; i-- { for i := *task.Instances; i > 0; i-- {
elekLog.ElektronLogger.Logf(elekLogTypes.CONSOLE, log.InfoLevel, elekLog.Logf(CONSOLE, log.InfoLevel,
"Checking if Instance #%d of Task[%s] can be scheduled "+ "Checking if Instance #%d of Task[%s] can be scheduled "+
"during the next offer cycle...", i, task.Name) "during the next offer cycle...", i, task.Name)
if canSchedule(task) { if canSchedule(task) {