package log import ( "io" "os" "testing" ) 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 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") } 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") }