go.wit.com/log change

Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
Jeff Carr 2024-01-08 23:52:23 -06:00
parent 6c5a9f6ed5
commit 115da18f5a
10 changed files with 71 additions and 66 deletions

View File

@ -5,6 +5,7 @@ import (
)
func Error(err error, a ...any) {
if ! ERROR.Ok() { return }
if ! ERROR.b { return }
origlog.Println("Error:", err)
origlog.Println(a...)

View File

@ -27,14 +27,14 @@ import (
"sync"
)
var INFO LogFlag
var VERBOSE LogFlag
var SPEW LogFlag
var WARN LogFlag
var ERROR LogFlag
var PRINTLN LogFlag
var INFO *LogFlag
var VERBOSE *LogFlag
var SPEW *LogFlag
var WARN *LogFlag
var ERROR *LogFlag
var PRINTLN *LogFlag
var always LogFlag
var always *LogFlag
// writeMutex protects locks the write process
var flagsMutex sync.Mutex
@ -53,34 +53,22 @@ var flags []*LogFlag
func init() {
full := "go.wit.com/log"
short := "gui"
short := "log"
INFO.NewFlag("INFO", false, full, short, "Enable log.Info()")
SPEW.NewFlag("SPEW", false, full, short, "Enable log.Spew()")
WARN.NewFlag("WARN", true, full, short, "Enable log.Warn()")
INFO = NewFlag("INFO", false, full, short, "Enable log.Info()")
SPEW = NewFlag("SPEW", false, full, short, "Enable log.Spew()")
WARN = NewFlag("WARN", true, full, short, "Enable log.Warn()")
VERBOSE.b = false
VERBOSE.name = "VERBOSE"
VERBOSE.subsystem = "log"
VERBOSE.desc = "Enable log.Verbose()"
VERBOSE.Register()
ERROR = NewFlag("ERROR", true, full, short, "Enable log.Error()")
PRINTLN = NewFlag("PRINTLN", true, full, short, "Enable log.Println()")
VERBOSE = NewFlag("VERBOSE", false, full, short, "Enable log.Verbose()")
ERROR.b = true
ERROR.name = "ERROR"
ERROR.subsystem = "log"
ERROR.desc = "Enable log.Error()"
ERROR.Register()
always = NewFlag("always", true, full, short, "internal only")
}
PRINTLN.b = true
PRINTLN.name = "PRINTLN"
PRINTLN.subsystem = "log"
PRINTLN.desc = "Enable log.Println()"
PRINTLN.Register()
always.b = true
always.subsystem = "log"
always.short = "log"
always.Register()
func (f *LogFlag) Ok() bool {
if f == nil {return false}
return true
}
// set all the flags
@ -114,6 +102,7 @@ func ShowFlags() []*LogFlag {
defer flagsMutex.Unlock()
for _, f := range flags {
Log(always, "ShowFlags() ", "(" + f.subsystem + ")", f.name, "=", f.b, ":", f.desc)
Jeff(always, "ShowFlags() ", "(" + f.subsystem + ")", f.name, "=", f.b, ":", f.desc)
}
return flags
@ -130,26 +119,6 @@ func ProcessFlags(callback func(*LogFlag)) {
}
// register a variable name from a subsystem
// inspired by Alex Flint
// set the Default value at the time of registration
func (f *LogFlag) Register() {
flagsMutex.Lock()
defer flagsMutex.Unlock()
Info("log.Register() ", f)
f.orig = f.b
if f.short == "" {
f.short = f.subsystem
}
flags = append(flags,f)
}
func (f *LogFlag) Ok() bool {
if f == nil {return false}
return true
}
func (f *LogFlag) Get() bool {
if ! f.Ok() {return false}
return f.b
@ -170,12 +139,17 @@ func (f *LogFlag) GetDesc() string {
return f.desc
}
// this is what the current log.SetFlag() function should become
// register a variable name from a subsystem
// inspired by Alex Flint
// set the Default value at the time of registration
/*
// this is what the glibc log.SetFlag() function should become
func (f *LogFlag) NewFlag(name string, b bool, full, short, desc string) {
if f != nil {return}
flagsMutex.Lock()
defer flagsMutex.Unlock()
Info("log.SetFlag() ", full, short, name, true)
Log(always, "log.SetFlag() ", full, short, name, true)
f = new(LogFlag)
f.b = b
f.orig = b
@ -185,6 +159,23 @@ func (f *LogFlag) NewFlag(name string, b bool, full, short, desc string) {
f.desc = desc
flags = append(flags,f)
}
*/
// this is what the current log.SetFlag() function should become
func NewFlag(name string, b bool, full, short, desc string) *LogFlag {
flagsMutex.Lock()
defer flagsMutex.Unlock()
f := new(LogFlag)
Log(always, "log.SetFlag() ", full, short, name, true)
f.b = b
f.orig = b
f.short = short
f.subsystem = full
f.name = name
f.desc = desc
flags = append(flags,f)
return f
}
func (f *LogFlag) Set(b bool) {
flagsMutex.Lock()

5
go.mod
View File

@ -1,5 +0,0 @@
module go.wit.com/log
go 1.21.4
require go.wit.com/spew v0.0.0-20240101141411-c7b8e91573c9

2
go.sum
View File

@ -1,2 +0,0 @@
go.wit.com/spew v0.0.0-20240101141411-c7b8e91573c9 h1:UEX2EzLQPzLTfy/kUFQD7OXtvKn8wk/+jpDOkbl4ff4=
go.wit.com/spew v0.0.0-20240101141411-c7b8e91573c9/go.mod h1:qBpgJXThMMT15vym7/E4Ur9y8oOo2nP7t2RP52QHUNw=

View File

@ -5,11 +5,13 @@ import (
)
func Info(a ...any) {
if ! INFO.Ok() { return }
if ! INFO.b { return }
golanglog.Println(a...)
}
func Infof(s string, a ...any) {
if ! INFO.Ok() { return }
if ! INFO.b { return }
golanglog.Printf(s, a...)
}

25
log.go
View File

@ -20,18 +20,31 @@ In your package, register NETWARN:
log.Register("myNetPkg", "NETWARN", &NETWARN)
*/
func Log(f LogFlag, a ...any) {
if ! f.b {
func Log(f *LogFlag, a ...any) {
if ! f.Ok() {return}
if ! f.Get() { return }
a = append([]any{f.short}, a...)
origlog.Println(a...)
}
func Jeff(f *LogFlag, a ...any) {
if ! f.Ok() {
origlog.Println("f == nil")
origlog.Println(a...)
return
}
if ! f.Get() {
origlog.Println("f.Get() =")
origlog.Println(a...)
return
}
a = append([]any{f.short}, a...)
origlog.Println(a...)
}
func Logf(f LogFlag, s string, a ...any) {
if ! f.b {
return
}
func Logf(f *LogFlag, s string, a ...any) {
if ! f.Ok() {return}
if ! f.Get() { return }
s = f.short + " " + s
origlog.Printf(s, a...)
}

View File

@ -55,11 +55,13 @@ import (
)
func Println(a ...any) {
if ! PRINTLN.Ok() { return }
if ! PRINTLN.b { return }
origlog.Println(a...)
}
func Printf(s string, a ...any) {
if ! PRINTLN.Ok() { return }
if ! PRINTLN.b { return }
origlog.Printf(s, a...)
}

View File

@ -6,6 +6,7 @@ import (
)
func Spew(b any, a ...any) {
if ! SPEW.Ok() { return }
if ! SPEW.b { return }
switch b.(type) {

View File

@ -5,6 +5,7 @@ import (
)
func Verbose(a ...any) {
if ! VERBOSE.Ok() { return }
if ! VERBOSE.b { return }
golanglog.Println(a...)
}

View File

@ -5,6 +5,7 @@ import (
)
func Warn(a ...any) {
if ! WARN.Ok() { return }
if ! WARN.b { return }
origlog.Println(a...)
}