main.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package main
  2. import (
  3. "context"
  4. "errors"
  5. "fmt"
  6. "gogs.tyduyong.com/duyong/dy-pkg/app/options"
  7. "gogs.tyduyong.com/duyong/dy-pkg/logs"
  8. )
  9. func main() {
  10. simple()
  11. use()
  12. }
  13. func simple() {
  14. logs.Infof("this is a test log, message: %s", "good")
  15. logs.Debug("this is debug message", logs.String("name", "duyong"))
  16. logs.Debugf("this is debugf message:%s", "debugf")
  17. logs.Error("this is error message", logs.Err(errors.New("name not found")))
  18. fmt.Println(123)
  19. }
  20. func use() {
  21. opts := &options.LogOptions{
  22. Level: "debug",
  23. Format: "console",
  24. EnableColor: true,
  25. DisableCaller: true,
  26. OutputPaths: []string{"test.log", "stdout"},
  27. ErrorOutputPaths: []string{"stdout"}, // 这个路径指的是zap内部错误时输出的位置。而不是zap打印error日志的输出位置。
  28. }
  29. logs.Init(opts)
  30. defer logs.Flush()
  31. // 这个地方可以定义中间件
  32. ctx := context.WithValue(context.Background(), logs.KeyRequestID, "123456")
  33. ctx = context.WithValue(ctx, logs.KeyUsername, "adu")
  34. logs.L(ctx).Debug("this is debug message", logs.String("name", "duyong"))
  35. logs.L(ctx).Info("this is info message", logs.String("name", "duyong"))
  36. logs.L(ctx).Error("this is error message", logs.String("name", "duyong"))
  37. logs.L(ctx).Fatal("this is fatal message", logs.String("name", "duyong"))
  38. }