前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >花了点时间写了一个 golang 的 logger 库

花了点时间写了一个 golang 的 logger 库

作者头像
李海彬
发布2019-05-08 10:43:00
5840
发布2019-05-08 10:43:00
举报
文章被收录于专栏:Golang语言社区

原文作者:joway

花了点时间写了一个 golang 的 logger 库,和目前市面上的 logger 的区别在于: 1. 可以 0 配置使用 2. 支持环境变量控制开关 3. 彩色输出

Inspired by a popular NodeJS logger library: debug.

Feature

  • zero configuration for most use cases.
  • Colorful console output
  • Enable logger by environment easily

Install

代码语言:javascript
复制
go get github.com/joway/loki@latest

API

Usage

Use root logger simply

It will not been affected by LOKI_ENV.

代码语言:javascript
复制
loki.SetLevel(loki.INFO)

loki.Info("x: %s", "hi")
loki.Debug("x: %s", "hi")
loki.Error("x: %s", "hi")

Create your logger

代码语言:javascript
复制
logger := loki.New("app:xxx")
logger.Info("x: %s", "hi")
logger.Debug("x: %s", "hi")
logger.Error("x: %s", "hi")

To enable the logger, just add env LOKI_ENV=app:xxx in your command, like: LOKI_ENV=app:xxx ./main.

You can also use LOKI_ENV=app:a,app:b,model:a to enable multiple logger.

LOKI_ENV=* can enable all loggers.

Use file handler

代码语言:javascript
复制
// "02 Jan 06 15:04 MST"
l := loki.New("app:xxx")
fp, err := os.OpenFile("test.log", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, os.ModePerm)
defer fp.Close()
flushIntervalMs := 1000
l.SetHandler(loki.NewFileHandler(fp, flushIntervalMs))

l.Info("x: %s", "hi")

Change time format

代码语言:javascript
复制
// "02 Jan 06 15:04 MST"
loki.SetTimeFormatter(time.RFC822)

// disable time output
loki.SetTimeFormatter("")

Use your custom logger formatter

代码语言:javascript
复制
type ErrFormatter struct {
	loki.Formatter
}

func (f ErrFormatter) format(a ...interface{}) string {
	err := a[0].(error)
	return fmt.Sprintf("Error %v", err)
}

logger := loki.New("app:xxx")
f := ErrFormatter{}
logger.SetFormatter(f)
logger.Debug(errors.New("test error"))

版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-04-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Feature
  • Install
  • API
  • Usage
    • Use root logger simply
      • Create your logger
        • Use file handler
          • Change time format
            • Use your custom logger formatter
            相关产品与服务
            日志服务
            日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志服务平台,提供了从日志采集、日志存储到日志检索,图表分析、监控告警、日志投递等多项服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档