Golang Go语言 日志美化输出 - ketty
Golang Go语言 日志美化输出 - ketty
Ketty
ketty 是一个 Golang 开发的简单的日志美化输出 Logger 。
Github
https://github.com/anqiansong/ketty
安装
$ go install github.com/anqiansong/ketty[@latest](/user/latest)
快速开始
func main(){
console.Info(`
{
"name":"Hello Ketty",
"description":"a color logger",
"author":"anqiansong",
"category":"console",
"github":"https://github.com/anqiansong/ketty",
"useage":[
"info",
"debug"
]
}`)
console.Debug("Hello Ketty")
console.Warn("Hello Ketty")
console.Error(errors.New("error test"))
}
终端显示
Goland 显示
用法
直接使用
直接使用的 Console 实例支持一些默认配置项:
- 使用
frame.WithLineStyle
作为边框 - 默认美化日志
func main(){
console.Info("Hello ketty, This is info log")
console.Debug("Hello ketty, This debug log")
console.Warn("Hello ketty, This warn log")
console.Error(errors.New("Hello ketty,This is an error"))
}
初始化
// 替换默认的边框
plusStyle := text.WithPlusStyle()
c := console.NewConsole(console.WithTextOption(plusStyle))
Console 配置
c.DisableBorder() // 禁用边框
c.DisableColor() // 禁用颜色美化
打印 log
// 输出 info 日志
c.Info("Hello Ketty, It's now %q", time.Now())
边框样式
预设样式
- WithLineStyle 默认样式
[INFO] 2021-11-26 23:24:51.826 ┌────────────
[INFO] 2021-11-26 23:24:51.826 │ Hello Ketty
[INFO] 2021-11-26 23:24:51.826 └────────────
- WithDotStyle
[INFO] 2021-11-26 23:25:16.794 .............
[INFO] 2021-11-26 23:25:16.794 . Hello Ketty
[INFO] 2021-11-26 23:25:16.794 .............
- WithStarStyle
[INFO] 2021-11-26 23:25:30.461 *************
[INFO] 2021-11-26 23:25:30.461 * Hello Ketty
[INFO] 2021-11-26 23:25:30.461 *************
- WithPlusStyle
[INFO] 2021-11-26 23:25:45.736 +------------
[INFO] 2021-11-26 23:25:45.736 | Hello Ketty
[INFO] 2021-11-26 23:25:45.736 +------------
- WithFivePointedStarStyle
[INFO] 2021-11-26 23:26:02.382 ★★★★★★★★★★★★★
[INFO] 2021-11-26 23:26:02.382 ★ Hello Ketty
[INFO] 2021-11-26 23:26:02.382 ★★★★★★★★★★★★★
- WithDoubleLine
[INFO] 2021-11-26 23:26:18.008 ╔════════════
[INFO] 2021-11-26 23:26:18.008 ║ Hello Ketty
[INFO] 2021-11-26 23:26:18.008 ╚════════════
- DisableBorder
[INFO] 2021-11-26 22:33:01.695 Hello Ketty, It's now "2021-11-26 22:33:01.695338 +0800 CST m=+0.000156150"
自定义样式
- WithCommonBorder
// 边框横向、众项、拐角均为一种符号
plusStyle := text.WithCommonBorder("x")
[INFO] 2021-11-26 23:26:44.162 xxxxxxxxxxxxx
[INFO] 2021-11-26 23:26:44.162 x Hello Ketty
[INFO] 2021-11-26 23:26:44.162 xxxxxxxxxxxxx
- WithBorder
// arg1: 左上角符号
// arg2: 左下角符号
// arg3: 横向边框符号
// arg4: 垂直边框符号
plusStyle := text.WithBorder("=","=","-","|")
c := console.NewConsole(console.WithTextOption(plusStyle))
[INFO] 2021-11-26 23:26:59.321 =------------
[INFO] 2021-11-26 23:26:59.321 | Hello Ketty
[INFO] 2021-11-26 23:26:59.321 =------------
日志持久化
TODO
注意事项
Windows 不支持美化输出。
更多关于Golang Go语言 日志美化输出 - ketty的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
日志系统杀手……
这种打到 elk 有些行不就是 ★★★★★★★★★★★★★ 😂
建议可以兼容不同的其他 logger 。这种格式毕竟也还是开发阶段用的多,线上不太适合采集分析。
日志量是不是扩大了一倍?
到线上可以禁用美化输出,这个的初衷主要是本地集成调式或者一些工具开发使用
本地调试可以用用
Right!
关于Golang(Go语言)中的日志美化输出,这是一个非常实用且常见的需求,特别是在开发过程中,良好的日志格式不仅能提高可读性,还能帮助开发者更快地定位问题。ketty
这个名字听起来像是一个具体的库或者工具,但在我所知的Go语言生态中,并没有直接名为 ketty
的日志美化库。不过,我可以给你一些通用的建议和流行的Go日志库推荐。
-
标准库
log
的扩展:Go的标准库log
提供了基本的日志功能,但格式较为简单。你可以通过自定义日志输出格式来实现美化,比如添加时间戳、日志级别、文件名和行号等。 -
第三方日志库:
- Zap:Uber开源的高性能日志库,支持结构化日志,且配置灵活,可以很容易地实现日志的美化输出。
- Logrus:一个完全可配置的日志库,支持多种日志格式(如JSON、文本),并且有丰富的插件生态。
- Glog:Google的开源日志库,基于Go的标准库
log
,但增加了更多的功能和配置选项。
-
自定义实现:如果上述库都不满足你的需求,你也可以考虑自己实现一个日志美化输出的库,通过实现
io.Writer
接口来自定义日志的输出格式。
建议根据你的具体需求选择合适的日志库,并参考其文档进行配置和使用。如果 ketty
是某个特定项目或团队内部的工具,建议查阅相关文档或询问团队成员以获取更多信息。