Implemented the logging viewer
This commit is contained in:
1 parent
d925e85653
commit
71aa99a5e3
11 files changed
+250
-120
No files matched your search
@@ -1,9 +1,17 @@
|
||||
package DeviceDatabase
|
||||
|
||||
import (
|
||||
"github.com/SommerEngineering/Ocean/Admin/Scheme"
|
||||
)
|
||||
|
||||
// Read the message names out of the cache.
|
||||
func ReadMessageNames() (messageNames []string) {
|
||||
func ReadMessageNames() (messageNames []Scheme.MessageNames) {
|
||||
mutexCacheMessageNames.RLock()
|
||||
defer mutexCacheMessageNames.RUnlock()
|
||||
messageNames = cacheMessageNames
|
||||
|
||||
// Transform the values to the right format:
|
||||
for _, entry := range cacheMessageNames {
|
||||
messageNames = append(messageNames, Scheme.MessageNames(entry))
|
||||
}
|
||||
return
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package DeviceDatabase
|
||||
|
||||
import (
|
||||
"github.com/SommerEngineering/Ocean/Admin/Scheme"
|
||||
"github.com/SommerEngineering/Ocean/Log"
|
||||
LM "github.com/SommerEngineering/Ocean/Log/Meta"
|
||||
"gopkg.in/mgo.v2/bson"
|
||||
@@ -8,7 +9,7 @@ import (
|
||||
)
|
||||
|
||||
// Read the message names from the database without any cache.
|
||||
func readMessageNamesFromDB() (result []string) {
|
||||
func readMessageNamesFromDB() (result []Scheme.MessageNames) {
|
||||
var nextMessageNames []string
|
||||
if err := logDBCollection.Find(bson.D{}).Distinct(`MessageName`, &nextMessageNames); err != nil {
|
||||
// Case: Error, was not able to write the event to the database:
|
||||
@@ -18,6 +19,11 @@ func readMessageNamesFromDB() (result []string) {
|
||||
|
||||
// Sort the sender names:
|
||||
sort.Strings(nextMessageNames)
|
||||
result = nextMessageNames
|
||||
|
||||
// Transform the values to the right format:
|
||||
for _, entry := range nextMessageNames {
|
||||
result = append(result, Scheme.MessageNames(entry))
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
@@ -1,9 +1,17 @@
|
||||
package DeviceDatabase
|
||||
|
||||
import (
|
||||
"github.com/SommerEngineering/Ocean/Admin/Scheme"
|
||||
)
|
||||
|
||||
// Read the sender names out of the cache.
|
||||
func ReadSenderNames() (senderNames []string) {
|
||||
func ReadSenderNames() (senderNames []Scheme.Sender) {
|
||||
mutexCacheSenderNames.RLock()
|
||||
defer mutexCacheSenderNames.RUnlock()
|
||||
senderNames = cacheSenderNames
|
||||
|
||||
// Transform the values to the right format:
|
||||
for _, entry := range cacheSenderNames {
|
||||
senderNames = append(senderNames, Scheme.Sender(entry))
|
||||
}
|
||||
return
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package DeviceDatabase
|
||||
|
||||
import (
|
||||
"github.com/SommerEngineering/Ocean/Admin/Scheme"
|
||||
"github.com/SommerEngineering/Ocean/Log"
|
||||
LM "github.com/SommerEngineering/Ocean/Log/Meta"
|
||||
"gopkg.in/mgo.v2/bson"
|
||||
@@ -8,7 +9,7 @@ import (
|
||||
)
|
||||
|
||||
// Reads the sender names from the database without any caching.
|
||||
func readSenderNamesFromDB() (result []string) {
|
||||
func readSenderNamesFromDB() (result []Scheme.Sender) {
|
||||
var nextSenderNames []string
|
||||
if err := logDBCollection.Find(bson.D{}).Distinct(`Sender`, &nextSenderNames); err != nil {
|
||||
// Case: Was not possible to write to the database.
|
||||
@@ -18,6 +19,10 @@ func readSenderNamesFromDB() (result []string) {
|
||||
|
||||
// Sort the sender names:
|
||||
sort.Strings(nextSenderNames)
|
||||
result = nextSenderNames
|
||||
|
||||
// Transform the values to the right format:
|
||||
for _, entry := range nextSenderNames {
|
||||
result = append(result, Scheme.Sender(entry))
|
||||
}
|
||||
return
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package DeviceDatabase
|
||||
|
||||
import (
|
||||
"github.com/SommerEngineering/Ocean/Admin/Scheme"
|
||||
LM "github.com/SommerEngineering/Ocean/Log/Meta"
|
||||
"gopkg.in/mgo.v2"
|
||||
"sync"
|
||||
@@ -8,17 +9,17 @@ import (
|
||||
|
||||
var (
|
||||
// This is the name for logging event from this package:
|
||||
senderName LM.Sender = `System::Logger::Database`
|
||||
mutexCacheFull sync.Mutex = sync.Mutex{}
|
||||
mutexCacheSenderNames sync.RWMutex = sync.RWMutex{}
|
||||
mutexCacheMessageNames sync.RWMutex = sync.RWMutex{}
|
||||
cache chan LogDBEntry = nil
|
||||
cacheSizeNumberOfEvents int = 50
|
||||
cacheSizeTime2FlushSeconds int = 6
|
||||
nameCachesRefreshTimeSeconds int = 300
|
||||
cacheSenderNames []string = nil
|
||||
cacheMessageNames []string = nil
|
||||
logDB *mgo.Database = nil
|
||||
logDBSession *mgo.Session = nil
|
||||
logDBCollection *mgo.Collection = nil
|
||||
senderName LM.Sender = `System::Logger::Database`
|
||||
mutexCacheFull sync.Mutex = sync.Mutex{}
|
||||
mutexCacheSenderNames sync.RWMutex = sync.RWMutex{}
|
||||
mutexCacheMessageNames sync.RWMutex = sync.RWMutex{}
|
||||
cache chan LogDBEntry = nil
|
||||
cacheSizeNumberOfEvents int = 50
|
||||
cacheSizeTime2FlushSeconds int = 6
|
||||
nameCachesRefreshTimeSeconds int = 300
|
||||
cacheSenderNames []Scheme.Sender = nil
|
||||
cacheMessageNames []Scheme.MessageNames = nil
|
||||
logDB *mgo.Database = nil
|
||||
logDBSession *mgo.Session = nil
|
||||
logDBCollection *mgo.Collection = nil
|
||||
)
|
||||
@@ -26,20 +26,20 @@ func HandlerWebLog(response http.ResponseWriter, request *http.Request) {
|
||||
countParameters := len(request.Form)
|
||||
|
||||
// Setup the data for the HTML template:
|
||||
data := Scheme.Viewer{}
|
||||
data := Scheme.LoggingViewer{}
|
||||
data.Title = `Logging Viewer`
|
||||
data.Sender = DeviceDatabase.ReadSenderNames()
|
||||
data.MessageNames = DeviceDatabase.ReadMessageNames()
|
||||
|
||||
// To less parameters?
|
||||
if countParameters < 9 {
|
||||
// Initial view => refresh & first page (latest logs)
|
||||
// Initial view => first page (latest logs)
|
||||
data.Events = readLatest()
|
||||
data.SetLiveView = true
|
||||
} else {
|
||||
// Case: Custom view
|
||||
currentLevel := request.FormValue(`Level`)
|
||||
currentTimeRange := request.FormValue(`timeRange`)
|
||||
currentTimeRange := request.FormValue(`TimeRange`)
|
||||
currentCategory := request.FormValue(`Category`)
|
||||
currentImpact := request.FormValue(`Impact`)
|
||||
currentSeverity := request.FormValue(`Severity`)
|
||||
@@ -96,6 +96,12 @@ func HandlerWebLog(response http.ResponseWriter, request *http.Request) {
|
||||
} else {
|
||||
data.CurrentSender = `*`
|
||||
}
|
||||
|
||||
if currentPage != `` {
|
||||
data.CurrentPage = currentPage
|
||||
} else {
|
||||
data.CurrentPage = `*`
|
||||
}
|
||||
}
|
||||
|
||||
// Write the MIME type and execute the template:
|
||||
|
||||
Reference in new issue
Block a user