package log import ( "io" "os" "testing" c "kumoly.io/core/log/color" ) func TestDev(t *testing.T) { LEVEL = Lerror | Ldebug | Lwarn | Linfo PROD = false // log.system = "dev" Error("d", "sdf", "sdfsdf") ErrorF(H{"Test": "set"}, "d", "sdf", "sdfsdf") Debug("d", "sdf", "sdfsdf") DebugF(H{"Test": "set"}, "d", "sdf", "sdfsdf") Warn("d", "sdf", "sdfsdf") WarnF(H{"Test": "set"}, "d", "sdf", "sdfsdf") Info("d", "sdf", "sdfsdf") InfoF(H{"Test": "set"}, "d", "sdf", "sdfsdf") } func TestProd(t *testing.T) { PROD = true // log.system = "prod" Error("d", "sdf", "sdfsdf") ErrorF(H{"Test": "set"}, "d", "sdf", "sdfsdf") Debug("d", "sdf", "sdfsdf") DebugF(H{"Test": "set"}, "d", "sdf", "sdfsdf") Warn("d", "sdf", "sdfsdf") WarnF(H{"Test": "set"}, "d", "sdf", "sdfsdf") Info("d", "sdf", "sdfsdf") InfoF(H{"Test": "set"}, "d", "sdf", "sdfsdf") } func TestSubDev(t *testing.T) { PROD = false l := Sub("TestSubDev") l.Error("d", "sdf", "sdfsdf") l.ErrorF(H{"Test": "set"}, "d", "sdf", "sdfsdf") l.Debug("d", "sdf", "sdfsdf") l.DebugF(H{"Test": "set"}, "d", "sdf", "sdfsdf") l.Warn("d", "sdf", "sdfsdf") l.WarnF(H{"Test": "set"}, "d", "sdf", "sdfsdf") l.Info("d", "sdf", "sdfsdf") l.InfoF(H{"Test": "set"}, "d", "sdf", "sdfsdf") } func TestSubProd(t *testing.T) { PROD = true l := Sub("TestSubProd") l.Error("d", "sdf", "sdfsdf") l.ErrorF(H{"Test": "set"}, "d", "sdf", "sdfsdf") l.Debug("d", "sdf", "sdfsdf") l.DebugF(H{"Test": "set"}, "d", "sdf", "sdfsdf") l.Warn("d", "sdf", "sdfsdf") l.WarnF(H{"Test": "set"}, "d", "sdf", "sdfsdf") l.Info("d", "sdf", "sdfsdf") l.InfoF(H{"Test": "set"}, "d", "sdf", "sdfsdf") } func TestCustTmpl(t *testing.T) { PROD = true l := Sub("TestCustTmpl") CustFormater := NewLogFormater() CustFormater.InfoTmplStr = `{{Time}} [{{blue}}INFO {{reset}}]` + `{{if .System}}({{cyan}}{{.System}}{{reset}}){{end}} ` + `key: test, value:{{.Fields.Test}}{{"\n"}}` l.SetTmpl(CustFormater, nil) l.Reload() l.Error("d", "sdf", "sdfsdf") l.ErrorF(H{"Test": "set"}, "d", "sdf", "sdfsdf") l.Debug("d", "sdf", "sdfsdf") l.DebugF(H{"Test": "set"}, "d", "sdf", "sdfsdf") l.Warn("d", "sdf", "sdfsdf") l.WarnF(H{"Test": "set"}, "d", "sdf", "sdfsdf") l.Info("d", "sdf", "sdfsdf") l.InfoF(H{"Test": "set"}, "d", "sdf", "sdfsdf") } func TestColoring(t *testing.T) { l := Sub("color") l.Error(l.M("Hello", c.BgHiGreen, c.Italic, c.FgWhite), ", ", l.M("world", c.FgBlue, c.BgHiYellow)) l.Error(l.M("Hello", c.FgHiGreen), ", ", l.M("world", c.Underline, c.FgMagenta)) } func TestToFile(t *testing.T) { PROD = true l := Sub("TestToFile") f, err := os.OpenFile("dist/test.log", os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0666) if err != nil { t.Error(err) } l.SetOutput(f) l.SetErrOutput(f) l.Reload() l.Error("d", "sdf", "sdfsdf") l.ErrorF(H{"Test": "set"}, "d", "sdf", "sdfsdf") l.Debug("d", "sdf", "sdfsdf") l.DebugF(H{"Test": "set"}, "d", "sdf", "sdfsdf") l.Warn("d", "sdf", "sdfsdf") l.WarnF(H{"Test": "set"}, "d", "sdf", "sdfsdf") l.Info("d", "sdf", "sdfsdf") l.InfoF(H{"Test": "set"}, "d", "sdf", "sdfsdf") l.SetColor(true) l.Reload() l.Error("d", "sdf", "sdfsdf") l.ErrorF(H{"Test": "set"}, "d", "sdf", "sdfsdf") l.Debug("d", "sdf", "sdfsdf") l.DebugF(H{"Test": "set"}, "d", "sdf", "sdfsdf") l.Warn("d", "sdf", "sdfsdf") l.WarnF(H{"Test": "set"}, "d", "sdf", "sdfsdf") l.Info("d", "sdf", "sdfsdf") l.InfoF(H{"Test": "set"}, "d", "sdf", "sdfsdf") } func TestApplyChild(t *testing.T) { PROD = true l := Sub("parent") l1 := l.Sub("child1") l2 := l.Sub("child2") l3 := l.Sub("child3") l1.Info("child1") l2.Info("child2") l3.Info("child3") l.SetOutputAll(io.Discard) l.ReloadAll() l1.Info("child1-discard") l2.Info("child2-discard") l3.Info("child3-discard") SetOutputAll(os.Stdout) ReloadAll() l1.Info("child1-stdout") l2.Info("child2-stdout") l3.Info("child3-stdout") SetColorAll(false) ReloadAll() l1.Info("child1-nocolor") l2.Info("child2-nocolor") l3.Info("child3-nocolor") }