Deleted the unused logging library
This commit is contained in:
parent
40efeca04b
commit
cef6efee33
12 changed files with 0 additions and 653 deletions
|
@ -1,29 +0,0 @@
|
|||
// Copyright (C) 2018 spdfg
|
||||
//
|
||||
// This file is part of Elektron.
|
||||
//
|
||||
// Elektron is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Elektron is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Elektron. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
package logging
|
||||
|
||||
type ClsfnTaskDistOverheadLogger struct {
|
||||
loggerObserverImpl
|
||||
}
|
||||
|
||||
func (col ClsfnTaskDistOverheadLogger) Log(message string) {
|
||||
// Logging the overhead of classifying tasks in the scheduling window and determining the distribution
|
||||
// of light power consuming and heavy power consuming tasks.
|
||||
col.logObserverSpecifics[clsfnTaskDistOverheadLogger].logFile.Println(message)
|
||||
}
|
|
@ -1,36 +0,0 @@
|
|||
// Copyright (C) 2018 spdfg
|
||||
//
|
||||
// This file is part of Elektron.
|
||||
//
|
||||
// Elektron is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Elektron is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Elektron. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
package logging
|
||||
|
||||
import (
|
||||
"log"
|
||||
)
|
||||
|
||||
type ConsoleLogger struct {
|
||||
loggerObserverImpl
|
||||
}
|
||||
|
||||
func (cl ConsoleLogger) Log(message string) {
|
||||
// We need to log to console only if the message is not empty
|
||||
if message != "" {
|
||||
log.Println(message)
|
||||
// Also logging the message to the console log file
|
||||
cl.logObserverSpecifics[conLogger].logFile.Println(message)
|
||||
}
|
||||
}
|
|
@ -1,62 +0,0 @@
|
|||
// Copyright (C) 2018 spdfg
|
||||
//
|
||||
// This file is part of Elektron.
|
||||
//
|
||||
// Elektron is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Elektron is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Elektron. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
package logging
|
||||
|
||||
import "github.com/fatih/color"
|
||||
|
||||
// Defining enums of log message types
|
||||
var logMessageNames []string
|
||||
|
||||
// Possible log message types
|
||||
var (
|
||||
ERROR = messageNametoMessageType("ERROR")
|
||||
WARNING = messageNametoMessageType("WARNING")
|
||||
GENERAL = messageNametoMessageType("GENERAL")
|
||||
SUCCESS = messageNametoMessageType("SUCCESS")
|
||||
SCHED_TRACE = messageNametoMessageType("SCHED_TRACE")
|
||||
PCP = messageNametoMessageType("PCP")
|
||||
SPS = messageNametoMessageType("SPS")
|
||||
CLSFN_TASKDIST_OVERHEAD = messageNametoMessageType("CLSFN_TASKDIST_OVERHEAD")
|
||||
SCHED_WINDOW = messageNametoMessageType("SCHED_WINDOW")
|
||||
)
|
||||
|
||||
// Text colors for the different types of log messages.
|
||||
var LogMessageColors map[LogMessageType]*color.Color = map[LogMessageType]*color.Color{
|
||||
ERROR: color.New(color.FgRed, color.Bold),
|
||||
WARNING: color.New(color.FgYellow, color.Bold),
|
||||
GENERAL: color.New(color.FgWhite, color.Bold),
|
||||
SUCCESS: color.New(color.FgGreen, color.Bold),
|
||||
}
|
||||
|
||||
type LogMessageType int
|
||||
|
||||
func (lmt LogMessageType) String() string {
|
||||
return logMessageNames[lmt]
|
||||
}
|
||||
|
||||
func GetLogMessageTypes() []string {
|
||||
return logMessageNames
|
||||
}
|
||||
|
||||
func messageNametoMessageType(messageName string) LogMessageType {
|
||||
// Appending messageName to LogMessageNames
|
||||
logMessageNames = append(logMessageNames, messageName)
|
||||
// Mapping messageName to int
|
||||
return LogMessageType(len(logMessageNames) - 1)
|
||||
}
|
|
@ -1,77 +0,0 @@
|
|||
// Copyright (C) 2018 spdfg
|
||||
//
|
||||
// This file is part of Elektron.
|
||||
//
|
||||
// Elektron is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Elektron is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Elektron. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
package logging
|
||||
|
||||
import (
|
||||
"time"
|
||||
)
|
||||
|
||||
type LoggerDriver struct {
|
||||
loggerSubject
|
||||
allowedMessageTypes map[LogMessageType]bool
|
||||
}
|
||||
|
||||
func newLogger() *LoggerDriver {
|
||||
logger := &LoggerDriver{
|
||||
allowedMessageTypes: map[LogMessageType]bool{
|
||||
ERROR: true,
|
||||
GENERAL: true,
|
||||
WARNING: true,
|
||||
SCHED_TRACE: true,
|
||||
SUCCESS: true,
|
||||
PCP: true,
|
||||
SPS: true,
|
||||
CLSFN_TASKDIST_OVERHEAD: true,
|
||||
SCHED_WINDOW: true,
|
||||
},
|
||||
}
|
||||
return logger
|
||||
}
|
||||
|
||||
func BuildLogger(startTime time.Time, prefix string) *LoggerDriver {
|
||||
// building logger
|
||||
l := newLogger()
|
||||
attachAllLoggers(l, startTime, prefix)
|
||||
return l
|
||||
}
|
||||
|
||||
func (log *LoggerDriver) EnabledLogging(messageType LogMessageType) {
|
||||
log.allowedMessageTypes[messageType] = true
|
||||
}
|
||||
|
||||
func (log *LoggerDriver) DisableLogging(messageType LogMessageType) {
|
||||
log.allowedMessageTypes[messageType] = false
|
||||
}
|
||||
|
||||
func (log *LoggerDriver) WriteLog(messageType LogMessageType, message string) {
|
||||
// checking to see if logging for given messageType is disabled
|
||||
if log.allowedMessageTypes[messageType] {
|
||||
log.setMessage(message)
|
||||
// notify registered loggers to log
|
||||
log.notify(messageType)
|
||||
}
|
||||
}
|
||||
|
||||
func (log *LoggerDriver) Listen(logMType <-chan LogMessageType, logMsg <-chan string) {
|
||||
for {
|
||||
mType := <-logMType
|
||||
msg := <-logMsg
|
||||
log.WriteLog(mType, msg)
|
||||
}
|
||||
}
|
|
@ -1,121 +0,0 @@
|
|||
// Copyright (C) 2018 spdfg
|
||||
//
|
||||
// This file is part of Elektron.
|
||||
//
|
||||
// Elektron is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Elektron is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Elektron. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
package logging
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
logUtils "github.com/spdfg/elektron/logging/utils"
|
||||
)
|
||||
|
||||
// Names of different loggers
|
||||
const (
|
||||
conLogger = "console-logger"
|
||||
schedTraceLogger = "schedTrace-logger"
|
||||
pcpLogger = "pcp-logger"
|
||||
spsLogger = "schedPolicySwitch-logger"
|
||||
clsfnTaskDistOverheadLogger = "classificationOverhead-logger"
|
||||
schedWindowLogger = "schedWindow-logger"
|
||||
)
|
||||
|
||||
// Logger class factory
|
||||
var Loggers map[string]loggerObserver = map[string]loggerObserver{
|
||||
conLogger: nil,
|
||||
schedTraceLogger: nil,
|
||||
pcpLogger: nil,
|
||||
spsLogger: nil,
|
||||
clsfnTaskDistOverheadLogger: nil,
|
||||
schedWindowLogger: nil,
|
||||
}
|
||||
|
||||
// Logger options to help initialize loggers
|
||||
type loggerOption func(l loggerObserver) error
|
||||
|
||||
func withLogDirectory(startTime time.Time, prefix string) loggerOption {
|
||||
return func(l loggerObserver) error {
|
||||
l.(*loggerObserverImpl).setLogDirectory(logUtils.GetLogDir(startTime, prefix))
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
// This loggerOption initializes the specifics for each loggerObserver
|
||||
func withLoggerSpecifics(prefix string) loggerOption {
|
||||
return func(l loggerObserver) error {
|
||||
l.(*loggerObserverImpl).logObserverSpecifics = map[string]*specifics{
|
||||
conLogger: &specifics{},
|
||||
schedTraceLogger: &specifics{},
|
||||
pcpLogger: &specifics{},
|
||||
spsLogger: &specifics{},
|
||||
clsfnTaskDistOverheadLogger: &specifics{},
|
||||
schedWindowLogger: &specifics{},
|
||||
}
|
||||
l.(*loggerObserverImpl).setLogFilePrefix(prefix)
|
||||
l.(*loggerObserverImpl).setLogFile()
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
// Build and assign all loggers
|
||||
func attachAllLoggers(lg *LoggerDriver, startTime time.Time, prefix string) {
|
||||
loi := &loggerObserverImpl{}
|
||||
loi.init(withLogDirectory(startTime, strings.Split(prefix, startTime.Format("20060102150405"))[0]),
|
||||
withLoggerSpecifics(prefix))
|
||||
Loggers[conLogger] = &ConsoleLogger{
|
||||
loggerObserverImpl: *loi,
|
||||
}
|
||||
Loggers[schedTraceLogger] = &SchedTraceLogger{
|
||||
loggerObserverImpl: *loi,
|
||||
}
|
||||
Loggers[pcpLogger] = &PCPLogger{
|
||||
loggerObserverImpl: *loi,
|
||||
}
|
||||
Loggers[spsLogger] = &SchedPolicySwitchLogger{
|
||||
loggerObserverImpl: *loi,
|
||||
}
|
||||
Loggers[clsfnTaskDistOverheadLogger] = &ClsfnTaskDistOverheadLogger{
|
||||
loggerObserverImpl: *loi,
|
||||
}
|
||||
Loggers[schedWindowLogger] = &SchedWindowLogger{
|
||||
loggerObserverImpl: *loi,
|
||||
}
|
||||
|
||||
for _, lmt := range GetLogMessageTypes() {
|
||||
switch lmt {
|
||||
case SCHED_TRACE.String():
|
||||
lg.attach(SCHED_TRACE, Loggers[schedTraceLogger])
|
||||
case GENERAL.String():
|
||||
lg.attach(GENERAL, Loggers[conLogger])
|
||||
case WARNING.String():
|
||||
lg.attach(WARNING, Loggers[conLogger])
|
||||
case ERROR.String():
|
||||
lg.attach(ERROR, Loggers[conLogger])
|
||||
case SUCCESS.String():
|
||||
lg.attach(SUCCESS, Loggers[conLogger])
|
||||
case PCP.String():
|
||||
lg.attach(PCP, Loggers[pcpLogger])
|
||||
case SPS.String():
|
||||
lg.attach(SPS, Loggers[spsLogger])
|
||||
case CLSFN_TASKDIST_OVERHEAD.String():
|
||||
lg.attach(CLSFN_TASKDIST_OVERHEAD, Loggers[clsfnTaskDistOverheadLogger])
|
||||
case SCHED_WINDOW.String():
|
||||
lg.attach(SCHED_WINDOW, Loggers[schedWindowLogger])
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,120 +0,0 @@
|
|||
// Copyright (C) 2018 spdfg
|
||||
//
|
||||
// This file is part of Elektron.
|
||||
//
|
||||
// Elektron is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Elektron is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Elektron. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
package logging
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
)
|
||||
|
||||
// Logging platform
|
||||
type loggerObserver interface {
|
||||
Log(message string)
|
||||
setLogFile()
|
||||
setLogFilePrefix(prefix string)
|
||||
setLogDirectory(dirName string)
|
||||
init(opts ...loggerOption)
|
||||
}
|
||||
|
||||
type specifics struct {
|
||||
logFilePrefix string
|
||||
logFile *log.Logger
|
||||
}
|
||||
|
||||
type loggerObserverImpl struct {
|
||||
logFile *log.Logger
|
||||
logObserverSpecifics map[string]*specifics
|
||||
logDirectory string
|
||||
}
|
||||
|
||||
func (loi *loggerObserverImpl) init(opts ...loggerOption) {
|
||||
for _, opt := range opts {
|
||||
// applying logger options
|
||||
if err := opt(loi); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (loi loggerObserverImpl) Log(message string) {}
|
||||
|
||||
// Requires logFilePrefix to have already been set
|
||||
func (loi *loggerObserverImpl) setLogFile() {
|
||||
for prefix, ls := range loi.logObserverSpecifics {
|
||||
if logFile, err := os.Create(ls.logFilePrefix); err != nil {
|
||||
log.Fatal("Unable to create logFile: ", err)
|
||||
} else {
|
||||
fmt.Printf("Creating logFile with pathname: %s, and prefix: %s\n", ls.logFilePrefix, prefix)
|
||||
ls.logFile = log.New(logFile, "", log.LstdFlags)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (loi *loggerObserverImpl) setLogFilePrefix(prefix string) {
|
||||
// Setting logFilePrefix for pcp logger
|
||||
pcpLogFilePrefix := prefix + ".pcplog"
|
||||
if loi.logDirectory != "" {
|
||||
pcpLogFilePrefix = loi.logDirectory + "/" + pcpLogFilePrefix
|
||||
}
|
||||
loi.logObserverSpecifics[pcpLogger].logFilePrefix = pcpLogFilePrefix
|
||||
|
||||
// Setting logFilePrefix for console logger
|
||||
consoleLogFilePrefix := prefix + "_console.log"
|
||||
if loi.logDirectory != "" {
|
||||
consoleLogFilePrefix = loi.logDirectory + "/" + consoleLogFilePrefix
|
||||
}
|
||||
loi.logObserverSpecifics[conLogger].logFilePrefix = consoleLogFilePrefix
|
||||
|
||||
// Setting logFilePrefix for schedTrace logger
|
||||
schedTraceLogFilePrefix := prefix + "_schedTrace.log"
|
||||
if loi.logDirectory != "" {
|
||||
schedTraceLogFilePrefix = loi.logDirectory + "/" + schedTraceLogFilePrefix
|
||||
}
|
||||
loi.logObserverSpecifics[schedTraceLogger].logFilePrefix = schedTraceLogFilePrefix
|
||||
|
||||
// Setting logFilePrefix for schedulingPolicySwitch logger
|
||||
schedPolicySwitchLogFilePrefix := prefix + "_schedPolicySwitch.log"
|
||||
if loi.logDirectory != "" {
|
||||
schedPolicySwitchLogFilePrefix = loi.logDirectory + "/" + schedPolicySwitchLogFilePrefix
|
||||
}
|
||||
loi.logObserverSpecifics[spsLogger].logFilePrefix = schedPolicySwitchLogFilePrefix
|
||||
|
||||
// Setting logFilePrefix for clsfnTaskDist logger.
|
||||
// Execution time of every call to def.GetTaskDistribution(...) would be recorded and logged in this file.
|
||||
// The overhead would be logged in microseconds.
|
||||
clsfnTaskDistOverheadLogFilePrefix := prefix + "_classificationOverhead.log"
|
||||
if loi.logDirectory != "" {
|
||||
clsfnTaskDistOverheadLogFilePrefix = loi.logDirectory + "/" + clsfnTaskDistOverheadLogFilePrefix
|
||||
}
|
||||
loi.logObserverSpecifics[clsfnTaskDistOverheadLogger].logFilePrefix = clsfnTaskDistOverheadLogFilePrefix
|
||||
|
||||
// Setting logFilePrefix for schedWindow logger.
|
||||
// Going to log the time stamp when the scheduling window was determined
|
||||
// and the size of the scheduling window.
|
||||
schedWindowLogFilePrefix := prefix + "_schedWindow.log"
|
||||
if loi.logDirectory != "" {
|
||||
schedWindowLogFilePrefix = loi.logDirectory + "/" + schedWindowLogFilePrefix
|
||||
}
|
||||
loi.logObserverSpecifics[schedWindowLogger].logFilePrefix = schedWindowLogFilePrefix
|
||||
}
|
||||
|
||||
func (loi *loggerObserverImpl) setLogDirectory(dirName string) {
|
||||
loi.logDirectory = dirName
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
// Copyright (C) 2018 spdfg
|
||||
//
|
||||
// This file is part of Elektron.
|
||||
//
|
||||
// Elektron is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Elektron is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Elektron. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
package logging
|
||||
|
||||
type loggerSubject struct {
|
||||
Registry map[LogMessageType][]loggerObserver
|
||||
message string
|
||||
}
|
||||
|
||||
func (ls *loggerSubject) setMessage(message string) {
|
||||
ls.message = message
|
||||
}
|
||||
|
||||
func (ls *loggerSubject) attach(messageType LogMessageType, lo loggerObserver) {
|
||||
if ls.Registry == nil {
|
||||
ls.Registry = make(map[LogMessageType][]loggerObserver)
|
||||
}
|
||||
ls.Registry[messageType] = append(ls.Registry[messageType], lo)
|
||||
}
|
||||
|
||||
func (ls *loggerSubject) notify(messageType LogMessageType) {
|
||||
for _, logObserver := range ls.Registry[messageType] {
|
||||
logObserver.Log(ls.message)
|
||||
}
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
// Copyright (C) 2018 spdfg
|
||||
//
|
||||
// This file is part of Elektron.
|
||||
//
|
||||
// Elektron is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Elektron is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Elektron. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
package logging
|
||||
|
||||
type PCPLogger struct {
|
||||
loggerObserverImpl
|
||||
}
|
||||
|
||||
func (pl *PCPLogger) Log(message string) {
|
||||
pl.logObserverSpecifics[pcpLogger].logFile.Println(message)
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
// Copyright (C) 2018 spdfg
|
||||
//
|
||||
// This file is part of Elektron.
|
||||
//
|
||||
// Elektron is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Elektron is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Elektron. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
package logging
|
||||
|
||||
type SchedPolicySwitchLogger struct {
|
||||
loggerObserverImpl
|
||||
}
|
||||
|
||||
func (pl *SchedPolicySwitchLogger) Log(message string) {
|
||||
pl.logObserverSpecifics[spsLogger].logFile.Println(message)
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
// Copyright (C) 2018 spdfg
|
||||
//
|
||||
// This file is part of Elektron.
|
||||
//
|
||||
// Elektron is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Elektron is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Elektron. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
package logging
|
||||
|
||||
type SchedTraceLogger struct {
|
||||
loggerObserverImpl
|
||||
}
|
||||
|
||||
func (stl SchedTraceLogger) Log(message string) {
|
||||
// Logging schedule trace to mentioned file
|
||||
stl.logObserverSpecifics[schedTraceLogger].logFile.Println(message)
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
// Copyright (C) 2018 spdfg
|
||||
//
|
||||
// This file is part of Elektron.
|
||||
//
|
||||
// Elektron is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Elektron is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Elektron. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
package logging
|
||||
|
||||
type SchedWindowLogger struct {
|
||||
loggerObserverImpl
|
||||
}
|
||||
|
||||
func (swl SchedWindowLogger) Log(message string) {
|
||||
// Logging schedule trace to mentioned file
|
||||
swl.logObserverSpecifics[schedWindowLogger].logFile.Println(message)
|
||||
}
|
|
@ -1,57 +0,0 @@
|
|||
// Copyright (C) 2018 spdfg
|
||||
//
|
||||
// This file is part of Elektron.
|
||||
//
|
||||
// Elektron is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Elektron is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Elektron. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
package logging
|
||||
|
||||
import (
|
||||
"log"
|
||||
"os"
|
||||
"strconv"
|
||||
"time"
|
||||
)
|
||||
|
||||
var LogDir string
|
||||
|
||||
func GetLogDir(startTime time.Time, prefix string) string {
|
||||
if LogDir == "" {
|
||||
LogDir = createLogDir(prefix, startTime)
|
||||
}
|
||||
return LogDir
|
||||
}
|
||||
|
||||
func createLogDir(prefix string, startTime time.Time) string {
|
||||
// Creating directory to store all logs for this run
|
||||
logDirName := "./" + prefix + strconv.Itoa(startTime.Year())
|
||||
logDirName += "-"
|
||||
logDirName += startTime.Month().String()
|
||||
logDirName += "-"
|
||||
logDirName += strconv.Itoa(startTime.Day())
|
||||
logDirName += "_"
|
||||
logDirName += strconv.Itoa(startTime.Hour())
|
||||
logDirName += "-"
|
||||
logDirName += strconv.Itoa(startTime.Minute())
|
||||
logDirName += "-"
|
||||
logDirName += strconv.Itoa(startTime.Second())
|
||||
if _, err := os.Stat(logDirName); os.IsNotExist(err) {
|
||||
os.Mkdir(logDirName, 0755)
|
||||
} else {
|
||||
log.Println("Unable to create log directory: ", err)
|
||||
logDirName = ""
|
||||
}
|
||||
return logDirName
|
||||
}
|
Reference in a new issue