gf/os/glog/glog_z_unit_chaining_test.go
2021-08-01 10:33:33 +08:00

248 lines
7.7 KiB
Go

// Copyright GoFrame Author(https://goframe.org). All Rights Reserved.
//
// This Source Code Form is subject to the terms of the MIT License.
// If a copy of the MIT was not distributed with this file,
// You can obtain one at https://github.com/gogf/gf.
package glog
import (
"bytes"
"fmt"
"github.com/gogf/gf/os/gfile"
"github.com/gogf/gf/os/gtime"
"github.com/gogf/gf/test/gtest"
"github.com/gogf/gf/text/gstr"
"testing"
"time"
)
func Test_To(t *testing.T) {
gtest.C(t, func(t *gtest.T) {
w := bytes.NewBuffer(nil)
To(w).Error(1, 2, 3)
To(w).Errorf("%d %d %d", 1, 2, 3)
t.Assert(gstr.Count(w.String(), defaultLevelPrefixes[LEVEL_ERRO]), 2)
t.Assert(gstr.Count(w.String(), "1 2 3"), 2)
})
}
func Test_Path(t *testing.T) {
gtest.C(t, func(t *gtest.T) {
path := gfile.TempDir(gtime.TimestampNanoStr())
file := fmt.Sprintf(`%d.log`, gtime.TimestampNano())
err := gfile.Mkdir(path)
t.Assert(err, nil)
defer gfile.Remove(path)
Path(path).File(file).Stdout(false).Error(1, 2, 3)
Path(path).File(file).Stdout(false).Errorf("%d %d %d", 1, 2, 3)
content := gfile.GetContents(gfile.Join(path, file))
t.Assert(gstr.Count(content, defaultLevelPrefixes[LEVEL_ERRO]), 2)
t.Assert(gstr.Count(content, "1 2 3"), 2)
})
}
func Test_Cat(t *testing.T) {
gtest.C(t, func(t *gtest.T) {
cat := "category"
path := gfile.TempDir(gtime.TimestampNanoStr())
file := fmt.Sprintf(`%d.log`, gtime.TimestampNano())
err := gfile.Mkdir(path)
t.Assert(err, nil)
defer gfile.Remove(path)
Path(path).File(file).Cat(cat).Stdout(false).Error(1, 2, 3)
Path(path).File(file).Cat(cat).Stdout(false).Errorf("%d %d %d", 1, 2, 3)
content := gfile.GetContents(gfile.Join(path, cat, file))
t.Assert(gstr.Count(content, defaultLevelPrefixes[LEVEL_ERRO]), 2)
t.Assert(gstr.Count(content, "1 2 3"), 2)
})
}
func Test_Level(t *testing.T) {
gtest.C(t, func(t *gtest.T) {
path := gfile.TempDir(gtime.TimestampNanoStr())
file := fmt.Sprintf(`%d.log`, gtime.TimestampNano())
err := gfile.Mkdir(path)
t.Assert(err, nil)
defer gfile.Remove(path)
Path(path).File(file).Level(LEVEL_PROD).Stdout(false).Debug(1, 2, 3)
Path(path).File(file).Level(LEVEL_PROD).Stdout(false).Debug("%d %d %d", 1, 2, 3)
content := gfile.GetContents(gfile.Join(path, file))
t.Assert(gstr.Count(content, defaultLevelPrefixes[LEVEL_DEBU]), 0)
t.Assert(gstr.Count(content, "1 2 3"), 0)
})
}
func Test_Skip(t *testing.T) {
gtest.C(t, func(t *gtest.T) {
path := gfile.TempDir(gtime.TimestampNanoStr())
file := fmt.Sprintf(`%d.log`, gtime.TimestampNano())
err := gfile.Mkdir(path)
t.Assert(err, nil)
defer gfile.Remove(path)
Path(path).File(file).Skip(10).Stdout(false).Error(1, 2, 3)
Path(path).File(file).Stdout(false).Errorf("%d %d %d", 1, 2, 3)
content := gfile.GetContents(gfile.Join(path, file))
t.Assert(gstr.Count(content, defaultLevelPrefixes[LEVEL_ERRO]), 2)
t.Assert(gstr.Count(content, "1 2 3"), 2)
t.Assert(gstr.Count(content, "Stack"), 1)
})
}
func Test_Stack(t *testing.T) {
gtest.C(t, func(t *gtest.T) {
path := gfile.TempDir(gtime.TimestampNanoStr())
file := fmt.Sprintf(`%d.log`, gtime.TimestampNano())
err := gfile.Mkdir(path)
t.Assert(err, nil)
defer gfile.Remove(path)
Path(path).File(file).Stack(false).Stdout(false).Error(1, 2, 3)
Path(path).File(file).Stdout(false).Errorf("%d %d %d", 1, 2, 3)
content := gfile.GetContents(gfile.Join(path, file))
t.Assert(gstr.Count(content, defaultLevelPrefixes[LEVEL_ERRO]), 2)
t.Assert(gstr.Count(content, "1 2 3"), 2)
t.Assert(gstr.Count(content, "Stack"), 1)
})
}
func Test_StackWithFilter(t *testing.T) {
gtest.C(t, func(t *gtest.T) {
path := gfile.TempDir(gtime.TimestampNanoStr())
file := fmt.Sprintf(`%d.log`, gtime.TimestampNano())
err := gfile.Mkdir(path)
t.Assert(err, nil)
defer gfile.Remove(path)
Path(path).File(file).StackWithFilter("none").Stdout(false).Error(1, 2, 3)
content := gfile.GetContents(gfile.Join(path, file))
t.Assert(gstr.Count(content, defaultLevelPrefixes[LEVEL_ERRO]), 1)
t.Assert(gstr.Count(content, "1 2 3"), 1)
t.Assert(gstr.Count(content, "Stack"), 1)
fmt.Println("Content:")
fmt.Println(content)
})
gtest.C(t, func(t *gtest.T) {
path := gfile.TempDir(gtime.TimestampNanoStr())
file := fmt.Sprintf(`%d.log`, gtime.TimestampNano())
err := gfile.Mkdir(path)
t.Assert(err, nil)
defer gfile.Remove(path)
Path(path).File(file).StackWithFilter("/gf/").Stdout(false).Error(1, 2, 3)
content := gfile.GetContents(gfile.Join(path, file))
t.Assert(gstr.Count(content, defaultLevelPrefixes[LEVEL_ERRO]), 1)
t.Assert(gstr.Count(content, "1 2 3"), 1)
t.Assert(gstr.Count(content, "Stack"), 0)
fmt.Println("Content:")
fmt.Println(content)
})
}
func Test_Header(t *testing.T) {
gtest.C(t, func(t *gtest.T) {
path := gfile.TempDir(gtime.TimestampNanoStr())
file := fmt.Sprintf(`%d.log`, gtime.TimestampNano())
err := gfile.Mkdir(path)
t.Assert(err, nil)
defer gfile.Remove(path)
Path(path).File(file).Header(true).Stdout(false).Error(1, 2, 3)
content := gfile.GetContents(gfile.Join(path, file))
t.Assert(gstr.Count(content, defaultLevelPrefixes[LEVEL_ERRO]), 1)
t.Assert(gstr.Count(content, "1 2 3"), 1)
})
gtest.C(t, func(t *gtest.T) {
path := gfile.TempDir(gtime.TimestampNanoStr())
file := fmt.Sprintf(`%d.log`, gtime.TimestampNano())
err := gfile.Mkdir(path)
t.Assert(err, nil)
defer gfile.Remove(path)
Path(path).File(file).Header(false).Stdout(false).Error(1, 2, 3)
content := gfile.GetContents(gfile.Join(path, file))
t.Assert(gstr.Count(content, defaultLevelPrefixes[LEVEL_ERRO]), 0)
t.Assert(gstr.Count(content, "1 2 3"), 1)
})
}
func Test_Line(t *testing.T) {
gtest.C(t, func(t *gtest.T) {
path := gfile.TempDir(gtime.TimestampNanoStr())
file := fmt.Sprintf(`%d.log`, gtime.TimestampNano())
err := gfile.Mkdir(path)
t.Assert(err, nil)
defer gfile.Remove(path)
Path(path).File(file).Line(true).Stdout(false).Debug(1, 2, 3)
content := gfile.GetContents(gfile.Join(path, file))
t.Assert(gstr.Count(content, defaultLevelPrefixes[LEVEL_DEBU]), 1)
t.Assert(gstr.Count(content, "1 2 3"), 1)
t.Assert(gstr.Count(content, ".go"), 1)
t.Assert(gstr.Contains(content, gfile.Separator), true)
})
gtest.C(t, func(t *gtest.T) {
path := gfile.TempDir(gtime.TimestampNanoStr())
file := fmt.Sprintf(`%d.log`, gtime.TimestampNano())
err := gfile.Mkdir(path)
t.Assert(err, nil)
defer gfile.Remove(path)
Path(path).File(file).Line(false).Stdout(false).Debug(1, 2, 3)
content := gfile.GetContents(gfile.Join(path, file))
t.Assert(gstr.Count(content, defaultLevelPrefixes[LEVEL_DEBU]), 1)
t.Assert(gstr.Count(content, "1 2 3"), 1)
t.Assert(gstr.Count(content, ".go"), 1)
t.Assert(gstr.Contains(content, gfile.Separator), false)
})
}
func Test_Async(t *testing.T) {
gtest.C(t, func(t *gtest.T) {
path := gfile.TempDir(gtime.TimestampNanoStr())
file := fmt.Sprintf(`%d.log`, gtime.TimestampNano())
err := gfile.Mkdir(path)
t.Assert(err, nil)
defer gfile.Remove(path)
Path(path).File(file).Async().Stdout(false).Debug(1, 2, 3)
content := gfile.GetContents(gfile.Join(path, file))
t.Assert(content, "")
time.Sleep(200 * time.Millisecond)
content = gfile.GetContents(gfile.Join(path, file))
t.Assert(gstr.Count(content, defaultLevelPrefixes[LEVEL_DEBU]), 1)
t.Assert(gstr.Count(content, "1 2 3"), 1)
})
gtest.C(t, func(t *gtest.T) {
path := gfile.TempDir(gtime.TimestampNanoStr())
file := fmt.Sprintf(`%d.log`, gtime.TimestampNano())
err := gfile.Mkdir(path)
t.Assert(err, nil)
defer gfile.Remove(path)
Path(path).File(file).Async(false).Stdout(false).Debug(1, 2, 3)
content := gfile.GetContents(gfile.Join(path, file))
t.Assert(gstr.Count(content, defaultLevelPrefixes[LEVEL_DEBU]), 1)
t.Assert(gstr.Count(content, "1 2 3"), 1)
})
}