mirror of
https://github.com/safing/portbase
synced 2025-09-01 18:19:57 +00:00
Fix logging on windows
This commit is contained in:
parent
e50553951f
commit
2da792a08d
4 changed files with 64 additions and 7 deletions
|
@ -40,14 +40,14 @@ func formatLine(line *logLine, useColor bool) string {
|
|||
|
||||
var fLine string
|
||||
if line.line == 0 {
|
||||
fLine = fmt.Sprintf("%s%s ? ▶ %s %03d%s %s", colorStart, line.time.Format("060102 15:04:05.000"), line.level.String(), counter, colorEnd, line.msg)
|
||||
fLine = fmt.Sprintf("%s%s ? %s %s %03d%s %s", colorStart, line.time.Format("060102 15:04:05.000"), rightArrow, line.level.String(), counter, colorEnd, line.msg)
|
||||
} else {
|
||||
fLen := len(line.file)
|
||||
fPartStart := fLen - 10
|
||||
if fPartStart < 0 {
|
||||
fPartStart = 0
|
||||
}
|
||||
fLine = fmt.Sprintf("%s%s %s:%03d ▶ %s %03d%s %s", colorStart, line.time.Format("060102 15:04:05.000"), line.file[fPartStart:], line.line, line.level.String(), counter, colorEnd, line.msg)
|
||||
fLine = fmt.Sprintf("%s%s %s:%03d %s %s %03d%s %s", colorStart, line.time.Format("060102 15:04:05.000"), line.file[fPartStart:], line.line, rightArrow, line.level.String(), counter, colorEnd, line.msg)
|
||||
}
|
||||
|
||||
if counter >= maxCount {
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
// Copyright Safing ICS Technologies GmbH. Use of this source code is governed by the AGPL license that can be found in the LICENSE file.
|
||||
|
||||
package log
|
||||
|
||||
type color int
|
||||
const (
|
||||
rightArrow = "▶"
|
||||
leftArrow = "◀"
|
||||
)
|
||||
|
||||
const (
|
||||
// colorBlack = "\033[30m"
|
56
log/formatting_windows.go
Normal file
56
log/formatting_windows.go
Normal file
|
@ -0,0 +1,56 @@
|
|||
package log
|
||||
|
||||
import (
|
||||
"github.com/Safing/portbase/utils/osdetail"
|
||||
)
|
||||
|
||||
const (
|
||||
rightArrow = ">"
|
||||
leftArrow = "<"
|
||||
)
|
||||
|
||||
const (
|
||||
// colorBlack = "\033[30m"
|
||||
colorRed = "\033[31m"
|
||||
// colorGreen = "\033[32m"
|
||||
colorYellow = "\033[33m"
|
||||
colorBlue = "\033[34m"
|
||||
colorMagenta = "\033[35m"
|
||||
colorCyan = "\033[36m"
|
||||
// colorWhite = "\033[37m"
|
||||
)
|
||||
|
||||
var (
|
||||
colorsSupported bool
|
||||
)
|
||||
|
||||
func init() {
|
||||
colorsSupported = osdetail.EnableColorSupport()
|
||||
}
|
||||
|
||||
func (s severity) color() string {
|
||||
if colorsSupported {
|
||||
switch s {
|
||||
case DebugLevel:
|
||||
return colorCyan
|
||||
case InfoLevel:
|
||||
return colorBlue
|
||||
case WarningLevel:
|
||||
return colorYellow
|
||||
case ErrorLevel:
|
||||
return colorRed
|
||||
case CriticalLevel:
|
||||
return colorMagenta
|
||||
default:
|
||||
return ""
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func endColor() string {
|
||||
if colorsSupported {
|
||||
return "\033[0m"
|
||||
}
|
||||
return ""
|
||||
}
|
|
@ -20,7 +20,7 @@ func writeLine(line *logLine) {
|
|||
|
||||
func startWriter() {
|
||||
shutdownWaitGroup.Add(1)
|
||||
fmt.Println(fmt.Sprintf("%s%s ▶ BOF%s", InfoLevel.color(), time.Now().Format("060102 15:04:05.000"), endColor()))
|
||||
fmt.Println(fmt.Sprintf("%s%s %s BOF%s", InfoLevel.color(), time.Now().Format("060102 15:04:05.000"), rightArrow, endColor()))
|
||||
go writer()
|
||||
}
|
||||
|
||||
|
@ -49,7 +49,7 @@ func writer() {
|
|||
case line = <-logBuffer:
|
||||
writeLine(line)
|
||||
case <-time.After(10 * time.Millisecond):
|
||||
fmt.Println(fmt.Sprintf("%s%s ◀ EOF%s", InfoLevel.color(), time.Now().Format("060102 15:04:05.000"), endColor()))
|
||||
fmt.Println(fmt.Sprintf("%s%s %s EOF%s", InfoLevel.color(), time.Now().Format("060102 15:04:05.000"), leftArrow, endColor()))
|
||||
return
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue