• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang log.New函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/woremacx/kocha/log.New函数的典型用法代码示例。如果您正苦于以下问题:Golang New函数的具体用法?Golang New怎么用?Golang New使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了New函数的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: TestLogger_With_Errorf

func TestLogger_With_Errorf(t *testing.T) {
	now := time.Now()
	util.Now = func() time.Time { return now }
	defer func() { util.Now = time.Now }()
	var buf bytes.Buffer
	format := "test log: %v"
	msg := "this is test"
	fields := log.Fields{
		"first":  1,
		"second": "two",
	}
	expected := "level:ERROR\ttime:" + now.Format(time.RFC3339Nano) + "\tmessage:test log: this is test\tfirst:1\tsecond:two\n"
	for _, v := range []struct {
		level    log.Level
		expected string
	}{
		{log.NONE, expected},
		{log.DEBUG, expected},
		{log.INFO, expected},
		{log.WARN, expected},
		{log.ERROR, expected},
		{log.FATAL, ""},
		{log.PANIC, ""},
	} {
		buf.Reset()
		logger := log.New(&buf, &log.LTSVFormatter{}, v.level).With(fields)
		logger.Errorf(format, msg)
		actual := buf.String()
		expected := v.expected
		if !reflect.DeepEqual(actual, expected) {
			t.Errorf(`log level => %v; logger.With(%#v).Errorf(%#v, %#v) prints %#v; want %#v`, v.level, fields, format, msg, actual, expected)
		}
	}
}
开发者ID:woremacx,项目名称:kocha,代码行数:34,代码来源:logger_test.go


示例2: TestLogger_SetLevel

func TestLogger_SetLevel(t *testing.T) {
	now := time.Now()
	util.Now = func() time.Time { return now }
	defer func() { util.Now = time.Now }()
	var buf bytes.Buffer
	logger := log.New(&buf, &log.LTSVFormatter{}, log.DEBUG)
	var actual interface{} = logger.Level()
	var expected interface{} = log.DEBUG
	if !reflect.DeepEqual(actual, expected) {
		t.Errorf(`logger.Level() => %v; want %v`, actual, expected)
	}
	msg := "test log"
	logger.Debug(msg)
	actual = buf.String()
	expected = "level:DEBUG\ttime:" + now.Format(time.RFC3339Nano) + "\tmessage:" + msg + "\n"
	if !reflect.DeepEqual(actual, expected) {
		t.Errorf(`logger.Debug(%#v) prints %#v; want %#v`, msg, actual, expected)
	}
	logger.SetLevel(log.INFO)
	actual = logger.Level()
	expected = log.INFO
	if !reflect.DeepEqual(actual, expected) {
		t.Errorf(`After logger.SetLevel(%v); logger.Level() => %v; want %v`, log.INFO, actual, expected)
	}
	buf.Reset()
	logger.Debug(msg)
	actual = buf.String()
	expected = ""
	if !reflect.DeepEqual(actual, expected) {
		t.Errorf(`After logger.SetLevel(%v); logger.Debug(%#v) => %#v; want %#v`, log.INFO, msg, actual, expected)
	}
}
开发者ID:woremacx,项目名称:kocha,代码行数:32,代码来源:logger_test.go


示例3: TestLogger_Debugln

func TestLogger_Debugln(t *testing.T) {
	now := time.Now()
	util.Now = func() time.Time { return now }
	defer func() { util.Now = time.Now }()
	var buf bytes.Buffer
	msg := "test log"
	expected := "level:DEBUG\ttime:" + now.Format(time.RFC3339Nano) + "\tmessage:test log\n"
	for _, v := range []struct {
		level    log.Level
		expected string
	}{
		{log.NONE, expected},
		{log.DEBUG, expected},
		{log.INFO, ""},
		{log.WARN, ""},
		{log.ERROR, ""},
		{log.FATAL, ""},
		{log.PANIC, ""},
	} {
		buf.Reset()
		logger := log.New(&buf, &log.LTSVFormatter{}, v.level)
		logger.Debugln(msg)
		actual := buf.String()
		expected := v.expected
		if !reflect.DeepEqual(actual, expected) {
			t.Errorf(`log level => %v; logger.Debugln(%#v) prints %#v; want %#v`, v.level, msg, actual, expected)
		}
	}
}
开发者ID:woremacx,项目名称:kocha,代码行数:29,代码来源:logger_test.go


示例4: buildLogger

func (app *Application) buildLogger() error {
	if app.Config.Logger == nil {
		app.Config.Logger = &LoggerConfig{}
	}
	if app.Config.Logger.Writer == nil {
		app.Config.Logger.Writer = os.Stdout
	}
	if app.Config.Logger.Formatter == nil {
		app.Config.Logger.Formatter = &log.LTSVFormatter{}
	}
	app.Logger = log.New(app.Config.Logger.Writer, app.Config.Logger.Formatter, app.Config.Logger.Level)
	return nil
}
开发者ID:woremacx,项目名称:kocha,代码行数:13,代码来源:kocha.go


示例5: TestLogger_Level

func TestLogger_Level(t *testing.T) {
	for _, level := range []log.Level{
		log.NONE,
		log.DEBUG,
		log.INFO,
		log.WARN,
		log.ERROR,
		log.FATAL,
		log.PANIC,
	} {
		logger := log.New(ioutil.Discard, &log.LTSVFormatter{}, level)
		actual := logger.Level()
		expected := level
		if !reflect.DeepEqual(actual, expected) {
			t.Errorf(`log level => %v; logger.Level() => %v; want %v`, level, actual, expected)
		}
	}
}
开发者ID:woremacx,项目名称:kocha,代码行数:18,代码来源:logger_test.go


示例6: TestLogger_With_Output

func TestLogger_With_Output(t *testing.T) {
	now := time.Now()
	util.Now = func() time.Time { return now }
	defer func() { util.Now = time.Now }()
	var buf bytes.Buffer
	msg := "test log"
	fields := log.Fields{
		"first":  1,
		"second": "two",
	}
	for _, currentLevel := range []log.Level{
		log.NONE,
		log.DEBUG,
		log.INFO,
		log.WARN,
		log.ERROR,
		log.FATAL,
		log.PANIC,
	} {
		for _, v := range []struct {
			level    log.Level
			expected string
		}{
			{log.NONE, "level:NONE\ttime:" + now.Format(time.RFC3339Nano) + "\tmessage:test log\tfirst:1\tsecond:two\n"},
			{log.DEBUG, "level:DEBUG\ttime:" + now.Format(time.RFC3339Nano) + "\tmessage:test log\tfirst:1\tsecond:two\n"},
			{log.INFO, "level:INFO\ttime:" + now.Format(time.RFC3339Nano) + "\tmessage:test log\tfirst:1\tsecond:two\n"},
			{log.WARN, "level:WARN\ttime:" + now.Format(time.RFC3339Nano) + "\tmessage:test log\tfirst:1\tsecond:two\n"},
			{log.ERROR, "level:ERROR\ttime:" + now.Format(time.RFC3339Nano) + "\tmessage:test log\tfirst:1\tsecond:two\n"},
			{log.FATAL, "level:FATAL\ttime:" + now.Format(time.RFC3339Nano) + "\tmessage:test log\tfirst:1\tsecond:two\n"},
			{log.PANIC, "level:PANIC\ttime:" + now.Format(time.RFC3339Nano) + "\tmessage:test log\tfirst:1\tsecond:two\n"},
		} {
			buf.Reset()
			logger := log.New(&buf, &log.LTSVFormatter{}, currentLevel).With(fields)
			logger.Output(v.level, msg)
			actual := buf.String()
			expected := v.expected
			if !reflect.DeepEqual(actual, expected) {
				t.Errorf(`log level => %v; logger.With(%#v).Output(%v, %#v) prints %#v; want %#v`, currentLevel, fields, v.level, msg, actual, expected)
			}
		}
	}
}
开发者ID:woremacx,项目名称:kocha,代码行数:42,代码来源:logger_test.go


示例7: TestLogger_With_Panicln

func TestLogger_With_Panicln(t *testing.T) {
	now := time.Now()
	util.Now = func() time.Time { return now }
	defer func() { util.Now = time.Now }()
	var buf bytes.Buffer
	msg := "test log"
	fields := log.Fields{
		"first":  1,
		"second": "two",
	}
	expected := "level:PANIC\ttime:" + now.Format(time.RFC3339Nano) + "\tmessage:test log\tfirst:1\tsecond:two\n"
	for _, v := range []struct {
		level    log.Level
		expected string
	}{
		{log.NONE, expected},
		{log.DEBUG, expected},
		{log.INFO, expected},
		{log.WARN, expected},
		{log.ERROR, expected},
		{log.FATAL, expected},
		{log.PANIC, expected},
	} {
		buf.Reset()
		logger := log.New(&buf, &log.LTSVFormatter{}, v.level).With(fields)
		func() {
			defer func() {
				if err := recover(); err == nil {
					t.Errorf("log level => %v; logger.With(%#v).Panicln(%#v) isn't calling panic()", v.level, msg)
				}
			}()
			logger.Panicln(msg)
		}()
		actual := buf.String()
		expected := v.expected
		if !reflect.DeepEqual(actual, expected) {
			t.Errorf(`log level => %v; logger.With(%#v).Panicln(%#v) prints %#v; want %#v`, v.level, fields, msg, actual, expected)
		}
	}
}
开发者ID:woremacx,项目名称:kocha,代码行数:40,代码来源:logger_test.go


示例8: TestLogger_Panicf

func TestLogger_Panicf(t *testing.T) {
	now := time.Now()
	util.Now = func() time.Time { return now }
	defer func() { util.Now = time.Now }()
	var buf bytes.Buffer
	format := "test log: %v"
	msg := "this is test"
	expected := "level:PANIC\ttime:" + now.Format(time.RFC3339Nano) + "\tmessage:test log: this is test\n"
	for _, v := range []struct {
		level    log.Level
		expected string
	}{
		{log.NONE, expected},
		{log.DEBUG, expected},
		{log.INFO, expected},
		{log.WARN, expected},
		{log.ERROR, expected},
		{log.FATAL, expected},
		{log.PANIC, expected},
	} {
		buf.Reset()
		logger := log.New(&buf, &log.LTSVFormatter{}, v.level)
		func() {
			defer func() {
				if err := recover(); err == nil {
					t.Errorf("log level => %v; logger.Panicf(%#v, %#v) isn't calling panic()", v.level, format, msg)
				}
			}()
			logger.Panicf(format, msg)
		}()
		actual := buf.String()
		expected := v.expected
		if !reflect.DeepEqual(actual, expected) {
			t.Errorf(`log level => %v; logger.Panicf(%#v, %#v) prints %#v; want %#v`, v.level, format, msg, actual, expected)
		}
	}
}
开发者ID:woremacx,项目名称:kocha,代码行数:37,代码来源:logger_test.go


示例9: TestContext_RenderError

func TestContext_RenderError(t *testing.T) {
	for _, v := range []struct {
		status      int
		contentType string
		expect      string
	}{
		{http.StatusInternalServerError, "text/html", "500 error\n"},
		{http.StatusBadRequest, "text/html", "400 error\n"},
		{http.StatusInternalServerError, "application/json", "{\"error\":500}\n"},
		{http.StatusTeapot, "text/html", http.StatusText(http.StatusTeapot)},
	} {
		c := newTestContext("testctrlr", "")
		w := httptest.NewRecorder()
		c.Response = &kocha.Response{ResponseWriter: w}
		c.Response.ContentType = v.contentType
		if err := c.RenderError(v.status, nil, nil); err != nil {
			t.Fatal(err)
		}
		buf, err := ioutil.ReadAll(w.Body)
		if err != nil {
			t.Fatal(err)
		}
		var actual interface{} = string(buf)
		var expect interface{} = v.expect
		if !reflect.DeepEqual(actual, expect) {
			t.Errorf(`Context.RenderError(%#v, %#v, %#v) => %#v; want %#v`, v.status, nil, nil, actual, expect)
		}

		actual = c.Response.StatusCode
		expect = v.status
		if !reflect.DeepEqual(actual, expect) {
			t.Errorf(`Context.RenderError(%#v, %#v, %#v); HTTP status => %#v; want %#v`, v.status, nil, nil, actual, expect)
		}
	}

	for _, v := range []struct {
		err         error
		contentType string
		expect      error
	}{
		{nil, "unknown/content-type", fmt.Errorf("kocha: unknown Content-Type: unknown/content-type")},
		{fmt.Errorf("expected error"), "unknown/content-type", fmt.Errorf("kocha: unknown Content-Type: unknown/content-type")},
	} {
		c := newTestContext("testctrlr", "")
		var buf bytes.Buffer
		c.App.Logger = log.New(&buf, c.App.Config.Logger.Formatter, c.App.Config.Logger.Level)
		c.Response.ContentType = v.contentType
		var actual interface{} = c.RenderError(http.StatusInternalServerError, v.err, nil)
		_, file, line, _ := runtime.Caller(0)
		line--
		var expect interface{} = fmt.Errorf("%s:%d: %v", file, line, v.expect)
		if !reflect.DeepEqual(actual, expect) {
			t.Errorf(`Context.RenderError(%#v, %#v, %#v) => %#v; want %#v`, http.StatusInternalServerError, nil, nil, actual, expect)
		}

		func() {
			actual := buf.String()
			expect := fmt.Sprintf("message:%s:%d: %v", file, line, v.err)
			if v.err != nil && !strings.Contains(actual, expect) {
				t.Errorf(`Context.RenderError(%#v, %#v, %#v); log => %#v; want %#v`, http.StatusInternalServerError, v.err, nil, actual, expect)
			}
		}()
	}
}
开发者ID:woremacx,项目名称:kocha,代码行数:64,代码来源:controller_test.go


示例10: TestPanicRecoverMiddleware

func TestPanicRecoverMiddleware(t *testing.T) {
	test := func(ident string, w *httptest.ResponseRecorder) {
		var actual interface{} = w.Code
		var expect interface{} = http.StatusInternalServerError
		if !reflect.DeepEqual(actual, expect) {
			t.Errorf(`PanicRecoverMiddleware: %s; status => %#v; want %#v`, ident, actual, expect)
		}

		actual = w.Body.String()
		expect = "This is layout\n500 error\n\n"
		if !reflect.DeepEqual(actual, expect) {
			t.Errorf(`PanicRecoverMiddleware: %s => %#v; want %#v`, ident, actual, expect)
		}

		actual = w.Header().Get("Content-Type")
		expect = "text/html"
		if !reflect.DeepEqual(actual, expect) {
			t.Errorf(`PanicRecoverMiddleware: %s; Context-Type => %#v; want %#v`, ident, actual, expect)
		}
	}

	func() {
		req, err := http.NewRequest("GET", "/error", nil)
		if err != nil {
			t.Fatal(err)
		}
		app := kocha.NewTestApp()
		app.Config.Middlewares = []kocha.Middleware{
			&kocha.PanicRecoverMiddleware{},
			&kocha.DispatchMiddleware{},
		}
		var buf bytes.Buffer
		app.Logger = log.New(&buf, &log.LTSVFormatter{}, app.Config.Logger.Level)
		w := httptest.NewRecorder()
		app.ServeHTTP(w, req)
		test(`GET "/error"`, w)

		actual := strings.SplitN(buf.String(), "\n", 2)[0]
		expect := "\tmessage:panic test"
		if !strings.Contains(actual, expect) {
			t.Errorf(`PanicRecoverMiddleware: GET "/error"; log => %#v; want contains => %#v`, actual, expect)
		}
	}()

	func() {
		req, err := http.NewRequest("GET", "/", nil)
		if err != nil {
			t.Fatal(err)
		}
		app := kocha.NewTestApp()
		app.Config.Middlewares = []kocha.Middleware{
			&kocha.PanicRecoverMiddleware{},
			&TestPanicInBeforeMiddleware{},
			&kocha.DispatchMiddleware{},
		}
		var buf bytes.Buffer
		app.Logger = log.New(&buf, &log.LTSVFormatter{}, app.Config.Logger.Level)
		w := httptest.NewRecorder()
		app.ServeHTTP(w, req)
		test(`GET "/"`, w)

		actual := strings.SplitN(buf.String(), "\n", 2)[0]
		expect := "\tmessage:before"
		if !strings.Contains(actual, expect) {
			t.Errorf(`PanicRecoverMiddleware: GET "/error"; log => %#v; want contains => %#v`, actual, expect)
		}
	}()

	func() {
		req, err := http.NewRequest("GET", "/", nil)
		if err != nil {
			t.Fatal(err)
		}
		app := kocha.NewTestApp()
		app.Config.Middlewares = []kocha.Middleware{
			&kocha.PanicRecoverMiddleware{},
			&TestPanicInAfterMiddleware{},
			&kocha.DispatchMiddleware{},
		}
		var buf bytes.Buffer
		app.Logger = log.New(&buf, &log.LTSVFormatter{}, app.Config.Logger.Level)
		w := httptest.NewRecorder()
		app.ServeHTTP(w, req)
		test(`GET "/"`, w)

		actual := strings.SplitN(buf.String(), "\n", 2)[0]
		expect := "\tmessage:after"
		if !strings.Contains(actual, expect) {
			t.Errorf(`PanicRecoverMiddleware: GET "/error"; log => %#v; want contains => %#v`, actual, expect)
		}
	}()

	func() {
		defer func() {
			actual := recover()
			expect := "before"
			if !reflect.DeepEqual(actual, expect) {
				t.Errorf(`PanicRecoverMiddleware after panic middleware: GET "/" => %#v; want %#v`, actual, expect)
			}
		}()
//.........这里部分代码省略.........
开发者ID:woremacx,项目名称:kocha,代码行数:101,代码来源:middleware_test.go



注:本文中的github.com/woremacx/kocha/log.New函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang skip.SkipList类代码示例发布时间:2022-05-28
下一篇:
Golang gcdmessage.SendDefaultRequest函数代码示例发布时间:2022-05-28
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap