logging is now compatible with klog.

See https://git.kyleisom.net/lib/libklogger
This commit is contained in:
Kyle Isom
2016-04-01 15:08:55 -07:00
parent 419f23d655
commit d1452f54c0
8 changed files with 442 additions and 487 deletions

View File

@@ -1,75 +1,43 @@
package main
import (
"fmt"
"os"
"time"
"github.com/kisom/goutils/logging"
"github.com/kisom/testio"
)
var log = logging.Init()
var olog, _ = logging.New("subsystem #42", logging.LevelNotice)
var log = logging.NewConsole()
var olog = logging.NewConsole()
func main() {
exampleNewWriters()
log.Notice("Hello, world.")
log.Warning("this program is about to end")
log.Info("example", "Hello, world.", nil)
log.Warn("example", "this program is about to end", nil)
log.SetLevel(logging.LevelDebug)
log.Debug("hello world")
log.SetLevel(logging.LevelNotice)
log.Critical("example", "screaming into the void", nil)
olog.Critical("other", "can anyone hear me?", nil)
olog.Print("now online")
logging.Suppress("olog")
olog.Print("extraneous information")
log.Warn("example", "but not for long", nil)
logging.Enable("olog")
olog.Print("relevant now")
log.Info("example", "fare thee well", nil)
olog.Info("other", "all good journeys must come to an end",
map[string]string{"when": time.Now().String()})
logging.SuppressAll()
log.Alert("screaming into the void")
olog.Critical("can anyone hear me?")
log.Enable()
log.Notice("i'm baaack")
log.Suppress()
log.Warning("but not for long")
logging.EnableAll()
log.Notice("fare thee well")
olog.Print("all good journeys must come to an end")
log.Info("example", "filelog test", nil)
exampleNewFromFile()
}
func exampleNewWriters() {
o := testio.NewBufCloser(nil)
e := testio.NewBufCloser(nil)
wlog, _ := logging.NewFromWriters("writers", logging.DefaultLevel, o, e)
wlog.Notice("hello, world")
wlog.Notice("some more things happening")
wlog.Warning("something suspicious has happened")
wlog.Alert("pick up that can, Citizen!")
fmt.Println("--- BEGIN OUT ---")
fmt.Printf("%s", o.Bytes())
fmt.Println("--- END OUT ---")
fmt.Println("--- BEGIN ERR ---")
fmt.Printf("%s", e.Bytes())
fmt.Println("--- END ERR ---")
os.Remove("example.log")
os.Remove("example.err")
}
func exampleNewFromFile() {
flog, err := logging.NewFromFile("file logger", logging.LevelNotice,
"example.log", "example.err", true)
flog, err := logging.NewSplitFile("example.log", "example.err", true)
if err != nil {
log.Fatalf("failed to open logger: %v", err)
log.Fatal("filelog", "failed to open logger",
map[string]string{"error": err.Error()})
}
defer flog.Close()
flog.Notice("hello, world")
flog.Notice("some more things happening")
flog.Warning("something suspicious has happened")
flog.Alert("pick up that can, Citizen!")
flog.Info("filelog", "hello, world", nil)
flog.Info("filelog", "some more things happening", nil)
flog.Warn("filelog", "something suspicious has happened", nil)
flog.Critical("filelog", "pick up that can, Citizen!", nil)
}