more work on registration of flags
Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
parent
bf41970f77
commit
b780c1a929
36
flags.go
36
flags.go
|
@ -11,24 +11,25 @@ var ERROR bool = true
|
||||||
var VERBOSE bool = false
|
var VERBOSE bool = false
|
||||||
// var SPEW bool = false
|
// var SPEW bool = false
|
||||||
|
|
||||||
var SPEW logFlag
|
var SPEW LogFlag
|
||||||
|
|
||||||
type logFlag struct {
|
type LogFlag struct {
|
||||||
b bool
|
B bool
|
||||||
name string
|
Name string
|
||||||
pkg string
|
Subsystem string
|
||||||
desc string
|
Desc string
|
||||||
}
|
}
|
||||||
|
|
||||||
var registered map[string][]string
|
var registered map[string][]string
|
||||||
|
var flags []*LogFlag
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
registered = make(map[string][]string)
|
registered = make(map[string][]string)
|
||||||
|
|
||||||
SPEW.b = false
|
SPEW.B = false
|
||||||
SPEW.name = "SPEW"
|
SPEW.Name = "SPEW"
|
||||||
SPEW.pkg = "log"
|
SPEW.Subsystem = "log"
|
||||||
SPEW.desc = "Enable log.Spew()"
|
SPEW.Desc = "Enable log.Spew()"
|
||||||
|
|
||||||
// register the default flags used by this log package
|
// register the default flags used by this log package
|
||||||
registered["log"] = []string{"SPEW","INFO", "WARN", "ERROR", "VERBOSE"}
|
registered["log"] = []string{"SPEW","INFO", "WARN", "ERROR", "VERBOSE"}
|
||||||
|
@ -43,6 +44,11 @@ func All(b bool) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func ListFlags() map[string][]string {
|
func ListFlags() map[string][]string {
|
||||||
|
Info("ListFlags() registered =", registered)
|
||||||
|
for _, f := range flags {
|
||||||
|
Info("ListFlags() flag B =", f.B, "Name =", f.Name, "Subsystem =", f.Subsystem, "Description:", f.Desc)
|
||||||
|
}
|
||||||
|
|
||||||
return registered
|
return registered
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,7 +59,7 @@ func Set(flag string, b bool) {
|
||||||
case "WARN":
|
case "WARN":
|
||||||
WARN = b
|
WARN = b
|
||||||
case "SPEW":
|
case "SPEW":
|
||||||
SPEW.b = b
|
SPEW.B = b
|
||||||
case "ERROR":
|
case "ERROR":
|
||||||
ERROR = b
|
ERROR = b
|
||||||
case "VERBOSE":
|
case "VERBOSE":
|
||||||
|
@ -70,7 +76,7 @@ func Get(flag string) bool {
|
||||||
case "WARN":
|
case "WARN":
|
||||||
return WARN
|
return WARN
|
||||||
case "SPEW":
|
case "SPEW":
|
||||||
return SPEW.b
|
return SPEW.B
|
||||||
case "ERROR":
|
case "ERROR":
|
||||||
return ERROR
|
return ERROR
|
||||||
case "VERBOSE":
|
case "VERBOSE":
|
||||||
|
@ -81,6 +87,12 @@ func Get(flag string) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// register a variable name from a subsystem
|
||||||
|
func (f *LogFlag) Register() {
|
||||||
|
Info("log.Register() ", f)
|
||||||
|
flags = append(flags,f)
|
||||||
|
}
|
||||||
|
|
||||||
// register a variable name from a subsystem
|
// register a variable name from a subsystem
|
||||||
// this is used for custom log flags
|
// this is used for custom log flags
|
||||||
func Register(subsystem string, name string, b *bool) {
|
func Register(subsystem string, name string, b *bool) {
|
||||||
|
|
39
log.go
39
log.go
|
@ -20,12 +20,41 @@ In your package, register NETWARN:
|
||||||
log.Register("myNetPkg", "NETWARN", &NETWARN)
|
log.Register("myNetPkg", "NETWARN", &NETWARN)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
func Log(b bool, a ...any) {
|
func Log(x any, a ...any) {
|
||||||
if ! b { return }
|
if x == nil { return }
|
||||||
origlog.Println(a...)
|
switch x.(type) {
|
||||||
|
case bool:
|
||||||
|
if ! x.(bool) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
origlog.Println(a...)
|
||||||
|
case LogFlag:
|
||||||
|
var f LogFlag
|
||||||
|
f = x.(LogFlag)
|
||||||
|
if ! f.B {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
a = append([]any{f.Subsystem}, a...)
|
||||||
|
origlog.Println(a...)
|
||||||
|
default:
|
||||||
|
a = append([]any{x}, a...)
|
||||||
|
origlog.Println(a...)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func Logf(b bool, s string, a ...any) {
|
func Logf(x any, s string, a ...any) {
|
||||||
if ! b { return }
|
if x == nil { return }
|
||||||
|
switch x.(type) {
|
||||||
|
case bool:
|
||||||
|
if ! x.(bool) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
case LogFlag:
|
||||||
|
var f LogFlag
|
||||||
|
f = x.(LogFlag)
|
||||||
|
if ! f.B {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
origlog.Printf(s, a...)
|
origlog.Printf(s, a...)
|
||||||
}
|
}
|
||||||
|
|
10
spew.go
10
spew.go
|
@ -6,7 +6,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func Spew(b any, a ...any) {
|
func Spew(b any, a ...any) {
|
||||||
if ! SPEW.b { return }
|
if ! SPEW.B { return }
|
||||||
|
|
||||||
switch b.(type) {
|
switch b.(type) {
|
||||||
case bool:
|
case bool:
|
||||||
|
@ -14,10 +14,10 @@ func Spew(b any, a ...any) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
origlog.Println("SPEW:", spew.Sdump(a...))
|
origlog.Println("SPEW:", spew.Sdump(a...))
|
||||||
case logFlag:
|
case LogFlag:
|
||||||
var f logFlag
|
var f LogFlag
|
||||||
f = b.(logFlag)
|
f = b.(LogFlag)
|
||||||
if ! f.b {
|
if ! f.B {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
origlog.Println("SPEW:", spew.Sdump(a...))
|
origlog.Println("SPEW:", spew.Sdump(a...))
|
||||||
|
|
Loading…
Reference in New Issue