Logging Web Interface

**Work in progress**
This commit is contained in:
Thorsten Sommer 2015-02-25 20:53:50 +01:00
parent c5e8a30e68
commit 45f2789048
10 changed files with 117 additions and 23 deletions

View File

@ -0,0 +1,23 @@
package DeviceDatabase
import (
"github.com/SommerEngineering/Ocean/Log/Meta"
)
func (entry LogDBEntry) Format() (result string) {
converted := Meta.Entry{}
converted.Time = entry.TimeUTC
converted.Project = entry.Project
converted.Sender = Meta.Sender(entry.Sender)
converted.Category = Meta.ParseCategory(entry.Category)
converted.Level = Meta.ParseLevel(entry.Level)
converted.Severity = Meta.ParseSeverity(entry.Severity)
converted.Impact = Meta.ParseImpact(entry.Impact)
converted.MessageName = Meta.MessageName(entry.MessageName)
converted.MessageDescription = entry.MessageDescription
converted.Parameters = entry.Parameters
result = converted.Format()
return
}

View File

@ -11,15 +11,15 @@ func write2Cache(entries []Meta.Entry) {
}
logDBentry := LogDBEntry{}
logDBentry.Category = Meta.FormatCategory(entry.Category)
logDBentry.Impact = Meta.FormatImpact(entry.Impact)
logDBentry.Level = Meta.FormatLevel(entry.Level)
logDBentry.Category = entry.Category.Format()
logDBentry.Impact = entry.Impact.Format()
logDBentry.Level = entry.Level.Format()
logDBentry.MessageDescription = entry.MessageDescription
logDBentry.MessageName = string(entry.MessageName)
logDBentry.Parameters = entry.Parameters
logDBentry.Project = entry.Project
logDBentry.Sender = string(entry.Sender)
logDBentry.Severity = Meta.FormatSeverity(entry.Severity)
logDBentry.Severity = entry.Severity.Format()
logDBentry.TimeUTC = entry.Time
cache <- logDBentry
}

View File

@ -9,7 +9,7 @@ const (
CategoryUSER = Category(iota)
)
func FormatCategory(cat Category) (result string) {
func (cat Category) Format() (result string) {
switch cat {
case CategoryBUSINESS:
result = `C:BUSINESS`
@ -25,3 +25,20 @@ func FormatCategory(cat Category) (result string) {
return
}
func ParseCategory(cat string) (value Category) {
switch cat {
case `C:BUSINESS`:
value = CategoryBUSINESS
case `C:APP`:
value = CategoryAPP
case `C:SYSTEM`:
value = CategorySYSTEM
case `C:USER`:
value = CategoryUSER
default:
value = CategoryAPP
}
return
}

View File

@ -29,7 +29,7 @@ func (entry Entry) Format() (result string) {
messageDescription = strings.Replace(messageDescription, "\t", ` `, -1)
messageDescription = strings.Replace(messageDescription, "\r", ` `, -1)
result = fmt.Sprintf(` [■] P:%10s [■] %s [■] %10s [■] %11s [■] %10s [■] %10s [■] sender: %-40s [■] name: %-26s [■] %s [■]`, entry.Project[:lenProject], formatTime(entry.Time), FormatCategory(entry.Category), FormatLevel(entry.Level), FormatSeverity(entry.Severity), FormatImpact(entry.Impact), entry.Sender[:lenSender], entry.MessageName[:lenMessageName], messageDescription)
result = fmt.Sprintf(` [■] P:%10s [■] %s [■] %10s [■] %11s [■] %10s [■] %10s [■] sender: %-40s [■] name: %-26s [■] %s [■]`, entry.Project[:lenProject], formatTime(entry.Time), entry.Category.Format(), entry.Level.Format(), entry.Severity.Format(), entry.Impact.Format(), entry.Sender[:lenSender], entry.MessageName[:lenMessageName], messageDescription)
for _, param := range entry.Parameters {

View File

@ -11,7 +11,7 @@ const (
ImpactUnknown = Impact(iota)
)
func FormatImpact(pri Impact) (result string) {
func (pri Impact) Format() (result string) {
switch pri {
case ImpactCritical:
result = `I:CRITICAL`
@ -31,3 +31,24 @@ func FormatImpact(pri Impact) (result string) {
return
}
func ParseImpact(pri string) (value Impact) {
switch pri {
case `I:CRITICAL`:
value = ImpactCritical
case `I:HIGH`:
value = ImpactHigh
case `I:LOW`:
value = ImpactLow
case `I:MIDDLE`:
value = ImpactMiddle
case `I:NONE`:
value = ImpactNone
case `I:UNKNOWN`:
value = ImpactUnknown
default:
value = ImpactUnknown
}
return
}

View File

@ -11,7 +11,7 @@ const (
LevelSECURITY = Level(iota)
)
func FormatLevel(lvl Level) (result string) {
func (lvl Level) Format() (result string) {
switch lvl {
case LevelDEBUG:
result = `L:DEBUG`
@ -31,3 +31,24 @@ func FormatLevel(lvl Level) (result string) {
return
}
func ParseLevel(lvl string) (value Level) {
switch lvl {
case `L:DEBUG`:
value = LevelDEBUG
case `L:ERROR`:
value = LevelERROR
case `L:INFO`:
value = LevelINFO
case `L:SECURITY`:
value = LevelSECURITY
case `L:TALKATIVE`:
value = LevelTALKATIVE
case `L:WARN`:
value = LevelWARN
default:
value = LevelERROR
}
return
}

View File

@ -11,7 +11,7 @@ const (
SeverityUnknown = Severity(iota)
)
func FormatSeverity(pri Severity) (result string) {
func (pri Severity) Format() (result string) {
switch pri {
case SeverityCritical:
result = `S:CRITICAL`
@ -31,3 +31,24 @@ func FormatSeverity(pri Severity) (result string) {
return
}
func ParseSeverity(pri string) (value Severity) {
switch pri {
case `S:CRITICAL`:
value = SeverityCritical
case `S:HIGH`:
value = SeverityHigh
case `S:LOW`:
value = SeverityLow
case `S:MIDDLE`:
value = SeverityMiddle
case `S:NONE`:
value = SeverityNone
case `S:UNKNOWN`:
value = SeverityUnknown
default:
value = SeverityUnknown
}
return
}

View File

@ -14,7 +14,8 @@ func readLatest() (events []Scheme.LogEvent) {
for n := 0; n < count; n++ {
eventFromDB := eventsFromDB[n]
events[n] = Scheme.LogEvent{}
events[n].LogLine = eventFromDB.Level // TODO!!!
events[n].LogLine = eventFromDB.Format()
events[n].LogLevel = eventFromDB.Level // TODO => Change also the template (Webflow, CSS classes)
if n%2 == 0 {
events[n].AB = Scheme.B
@ -23,9 +24,5 @@ func readLatest() (events []Scheme.LogEvent) {
}
}
// data.Events = make([]Scheme.LogEvent, 3)
// data.Events[0].AB = Scheme.A
// data.Events[0].LogLevel = Scheme.LogINFO
// data.Events[0].LogLine = `hello world`
return
}

View File

@ -3,10 +3,4 @@ package Scheme
const (
A string = `loga`
B string = `logb`
LogWARN = `logwarn`
LogDEBUG = `logdebug`
LogERROR = `logerror`
LogINFO = `loginfo`
LogTALKATIVE = `logtalkative`
LogSECURITY = `logsecurity`
)

View File

@ -15,6 +15,6 @@ type Viewer struct {
// </li>
type LogEvent struct {
LogLine string
LogLevel string // logwarn || logdebug || logerror || loginfo || logtalkative || logsecurity
LogLevel string // L:DEBUG || L:ERROR || L:INFO || L:SECURITY || L:TALKATIVE || L:WARN
AB string // loga || logb
}