diff --git a/error.go b/error.go index 4a10455..387f23c 100644 --- a/error.go +++ b/error.go @@ -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...) diff --git a/flags.go b/flags.go index 0a00ed8..739a7b5 100644 --- a/flags.go +++ b/flags.go @@ -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() diff --git a/go.mod b/go.mod deleted file mode 100644 index 243bc19..0000000 --- a/go.mod +++ /dev/null @@ -1,5 +0,0 @@ -module go.wit.com/log - -go 1.21.4 - -require go.wit.com/spew v0.0.0-20240101141411-c7b8e91573c9 diff --git a/go.sum b/go.sum deleted file mode 100644 index 6a0c10c..0000000 --- a/go.sum +++ /dev/null @@ -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= diff --git a/info.go b/info.go index 574aa4b..0d2e81c 100644 --- a/info.go +++ b/info.go @@ -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...) } diff --git a/log.go b/log.go index 6095f12..a00cc00 100644 --- a/log.go +++ b/log.go @@ -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...) } diff --git a/original.go b/original.go index b0cf01f..02fb701 100644 --- a/original.go +++ b/original.go @@ -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...) } diff --git a/spew.go b/spew.go index d897cce..7f433a7 100644 --- a/spew.go +++ b/spew.go @@ -6,6 +6,7 @@ import ( ) func Spew(b any, a ...any) { + if ! SPEW.Ok() { return } if ! SPEW.b { return } switch b.(type) { diff --git a/verbose.go b/verbose.go index 2359046..ed776b8 100644 --- a/verbose.go +++ b/verbose.go @@ -5,6 +5,7 @@ import ( ) func Verbose(a ...any) { + if ! VERBOSE.Ok() { return } if ! VERBOSE.b { return } golanglog.Println(a...) } diff --git a/warn.go b/warn.go index 8fd4cc7..e8518bd 100644 --- a/warn.go +++ b/warn.go @@ -5,6 +5,7 @@ import ( ) func Warn(a ...any) { + if ! WARN.Ok() { return } if ! WARN.b { return } origlog.Println(a...) }