Ocean/Log/Init.go
Thorsten 3348e552cc Misc.
+ Removed the fixed shutdown time
+ Added the configuration for the public web server
+ Refactored the old web server settings
+ Improved the handling of shutdown handlers. It is not save!
+ Bugfix: The server start was no longer blocking
2014-11-07 13:00:55 +01:00

56 lines
1.6 KiB
Go

package Log
import (
"container/list"
"github.com/SommerEngineering/Ocean/Log/Meta"
"io/ioutil"
"os"
"path/filepath"
"strconv"
"strings"
"sync"
)
func readProjectName() {
if currentDir, dirError := os.Getwd(); dirError != nil {
panic(`Can not read the current working directory and therefore can not read the project name!`)
} else {
filename := filepath.Join(currentDir, `project.name`)
if _, errFile := os.Stat(filename); errFile != nil {
if os.IsNotExist(errFile) {
panic(`Can not read the project name file 'project.name': File not found!`)
} else {
panic(`Can not read the project name file 'project.name': ` + errFile.Error())
}
}
if projectNameBytes, errRead := ioutil.ReadFile(filename); errRead != nil {
panic(`Can not read the project name file 'project.name': ` + errRead.Error())
} else {
projectName = string(projectNameBytes)
projectName = strings.TrimSpace(projectName)
}
}
}
func init() {
readProjectName()
mutexDeviceDelays = sync.Mutex{}
mutexPreChannelBuffer = sync.Mutex{}
mutexChannel = sync.RWMutex{}
preChannelBuffer = list.New()
deviceDelayBuffer = list.New()
devices = list.New()
schedulerExitSignal = make(chan bool)
initTimer()
initCode()
}
func initCode() {
entriesBuffer = make(chan Meta.Entry, logBufferSize)
LogShort(senderName, Meta.CategorySYSTEM, Meta.LevelINFO, `Starting`, `The logger is now starting.`, `logBufferSize=`+strconv.Itoa(int(logBufferSize)), `logBufferTimeoutSeconds=`+strconv.Itoa(int(logBufferTimeoutSeconds)))
go scheduler(entriesBuffer)
}