原文作者: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
go get github.com/joway/loki@latest
API
Usage
Use root logger simply
It will not been affected by LOKI_ENV
.
loki.SetLevel(loki.INFO)
loki.Info("x: %s", "hi")
loki.Debug("x: %s", "hi")
loki.Error("x: %s", "hi")
Create your logger
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
// "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
// "02 Jan 06 15:04 MST"
loki.SetTimeFormatter(time.RFC822)// disable time output
loki.SetTimeFormatter("")
Use your custom logger formatter
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"))
版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢。
![be95515880771f99d204d15dea1047ab.png](https://i-blog.csdnimg.cn/blog_migrate/9b4ce4f3c1cc85e68855824e22a6b792.png)
Golang语言社区
ID:Golangweb
www.Golang.LTD
Golang标准文库
翻译地址:http://doc.golang.ltd/
游戏服务器架构丨分布式技术丨大数据丨游戏算法学习