Switch from file levels logging to pkg levels

This commit is contained in:
Daniel 2019-08-05 12:36:17 +02:00
parent 33fbe790c7
commit 3890bf68f3
3 changed files with 23 additions and 23 deletions

View file

@ -3,11 +3,11 @@ package log
import "flag"
var (
logLevelFlag string
fileLogLevelsFlag string
logLevelFlag string
pkgLogLevelsFlag string
)
func init() {
flag.StringVar(&logLevelFlag, "log", "info", "set log level to [trace|debug|info|warning|error|critical]")
flag.StringVar(&fileLogLevelsFlag, "flog", "", "set log level of files: database=trace,firewall=debug")
flag.StringVar(&pkgLogLevelsFlag, "plog", "", "set log level of packages: database=trace,firewall=debug")
}

View file

@ -9,7 +9,7 @@ import (
)
func fastcheck(level severity) bool {
if fileLevelsActive.IsSet() {
if pkgLevelsActive.IsSet() {
return true
}
if uint32(level) < atomic.LoadUint32(logLevel) {
@ -31,7 +31,7 @@ func log(level severity, msg string, trace *ContextTracer) {
}
// check if level is enabled
if !fileLevelsActive.IsSet() && uint32(level) < atomic.LoadUint32(logLevel) {
if !pkgLevelsActive.IsSet() && uint32(level) < atomic.LoadUint32(logLevel) {
return
}
@ -52,12 +52,12 @@ func log(level severity, msg string, trace *ContextTracer) {
}
// check if level is enabled for file or generally
if fileLevelsActive.IsSet() {
if pkgLevelsActive.IsSet() {
fileOnly := strings.Split(file, "/")
if len(fileOnly) < 2 {
return
}
sev, ok := fileLevels[fileOnly[len(fileOnly)-2]]
sev, ok := pkgLevels[fileOnly[len(fileOnly)-2]]
if ok {
if level < sev {
return

View file

@ -73,9 +73,9 @@ var (
logLevelInt = uint32(3)
logLevel = &logLevelInt
fileLevelsActive = abool.NewBool(false)
fileLevels = make(map[string]severity)
fileLevelsLock sync.Mutex
pkgLevelsActive = abool.NewBool(false)
pkgLevels = make(map[string]severity)
pkgLevelsLock sync.Mutex
logsWaiting = make(chan bool, 1)
logsWaitingFlag = abool.NewBool(false)
@ -90,15 +90,15 @@ var (
testErrors = abool.NewBool(false)
)
func SetFileLevels(levels map[string]severity) {
fileLevelsLock.Lock()
fileLevels = levels
fileLevelsLock.Unlock()
fileLevelsActive.Set()
func SetPkgLevels(levels map[string]severity) {
pkgLevelsLock.Lock()
pkgLevels = levels
pkgLevelsLock.Unlock()
pkgLevelsActive.Set()
}
func UnSetFileLevels() {
fileLevelsActive.UnSet()
func UnSetPkgLevels() {
pkgLevelsActive.UnSet()
}
func SetLogLevel(level severity) {
@ -141,10 +141,10 @@ func Start() (err error) {
}
// get and set file loglevels
fileLogLevels := fileLogLevelsFlag
if len(fileLogLevels) > 0 {
newFileLevels := make(map[string]severity)
for _, pair := range strings.Split(fileLogLevels, ",") {
pkgLogLevels := pkgLogLevelsFlag
if len(pkgLogLevels) > 0 {
newPkgLevels := make(map[string]severity)
for _, pair := range strings.Split(pkgLogLevels, ",") {
splitted := strings.Split(pair, "=")
if len(splitted) != 2 {
err = fmt.Errorf("log warning: invalid file log level \"%s\", ignoring", pair)
@ -157,9 +157,9 @@ func Start() (err error) {
fmt.Fprintf(os.Stderr, "%s\n", err.Error())
break
}
newFileLevels[splitted[0]] = fileLevel
newPkgLevels[splitted[0]] = fileLevel
}
SetFileLevels(newFileLevels)
SetPkgLevels(newPkgLevels)
}
startWriter()