diff --git a/log.go b/log.go index 6a5b3cd..19a1d3d 100644 --- a/log.go +++ b/log.go @@ -1,123 +1,29 @@ -// -// version v1.1 -// -// I like things to be easy. -// -// this means all the log settings are in one place. it should allow -// things to be over-ridden externally to the library -// but still allow command line --args to pass debugging settings -// -// I also have a generic sleep() and exit() in here because it's simple -// -// Usage: -// -// log("something", foo, bar) -// var DEBUG bool = true -// log(DEBUG, "something else", someOtherVariable) # if DEBUG == false, return doing nothing -// log(SPEW, "something else", someOtherVariable) # this get's sent to spew.Dump(). Very useful for debugging! -// package main import ( - "os" - "runtime" - "runtime/pprof" - golog "log" - "time" - "reflect" - "github.com/davecgh/go-spew/spew" - // "net" + witlog "git.wit.org/wit/gui/log" ) -var LOGOFF bool = false // turn this off, all logging stops -var WARN bool -var INFO bool +// various debugging flags +var logNow bool = true // useful for active development +var logError bool = true +var logWarn bool = false +var logInfo bool = false +var logVerbose bool = false -type spewt struct { - a bool -} +var SPEW witlog.Spewt -var SPEW spewt - - -/* - sleep() # you know what this does? sleeps for 1 second. yep. dump. easy. - sleep(.1) # you know what this does? yes, it sleeps for 1/10th of a second -*/ -func sleep(a ...any) { - if (a == nil) { - time.Sleep(time.Second) - return - } - - log(args.Verbose, "sleep", a[0]) - - switch a[0].(type) { - case int: - time.Sleep(time.Duration(a[0].(int)) * time.Second) - case float64: - time.Sleep(time.Duration(a[0].(float64) * 1000) * time.Millisecond) - default: - log("sleep a[0], type = ", a[0], reflect.TypeOf(a[0])) - } -} - -/* - exit() # yep. exits. I guess everything must be fine - exit(3) # I guess 3 it is then - exit("dont like apples") # ok. I'll make a note of that -*/ -func exit(a ...any) { - log("exit", a) - //if (a) { - // os.Exit(a) - //} - os.Exit(0) -} - -/* - I've spent, am spending, too much time thinking about 'logging'. 'log', 'logrus', 'zap', whatever. - I'm not twitter. i don't give a fuck about how many nanoseconds it takes to log. Anyway, this - implementation is probably faster than all of those because you just set one bool to FALSE - and it all stops. - Sometimes I need to capture to stdout, sometimes stdout can't - work because it doesn't exist for the user. This whole thing is a PITA. Then it's spread - over 8 million references in every .go file. I'm tapping out and putting - it in one place. here it is. Also, this makes having debug levels really fucking easy. - You can define whatever level of logging you want from anywhere (command line) etc. - - log() # doesn't do anything - log(stuff) # sends it to whatever log you define in a single place. here is the place -*/ +// var log interface{} func log(a ...any) { - if (LOGOFF) { - return - } - - if (a == nil) { - return - } - var blah bool - if (reflect.TypeOf(a[0]) == reflect.TypeOf(blah)) { - if (a[0] == false) { - return - } - a = a[1:] - } - - if (reflect.TypeOf(a[0]) == reflect.TypeOf(SPEW)) { - a = a[1:] - // spew.Dump(a) - scs := spew.ConfigState{MaxDepth: 1} - scs.Dump(a) - return - } - - golog.Println(a...) + witlog.Where = "wit/gui" + witlog.Log(a...) } -func loggo() { - pprof.Lookup("goroutine").WriteTo(os.Stdout, 1) - log("runtime.NumGoroutine() = ", runtime.NumGoroutine()) +func sleep(a ...any) { + witlog.Sleep(a...) +} + +func exit(a ...any) { + witlog.Exit(a...) } diff --git a/net.go b/net.go index e24fe41..793f334 100644 --- a/net.go +++ b/net.go @@ -79,6 +79,9 @@ func checkInterface(i net.Interface) { me.ifmap[i.Index].gone = false me.ifmap[i.Index].iface = &i me.ipchange = true + if (me.Interfaces != nil) { + me.Interfaces.AddText(i.Name) + } return } me.ifmap[i.Index].gone = false @@ -87,6 +90,9 @@ func checkInterface(i net.Interface) { log(val.iface.Name, "has changed to it's name to", i.Name) me.ifmap[i.Index].iface = &i me.ipchange = true + if (me.Interfaces != nil) { + me.Interfaces.AddText(i.Name) + } return } }