Golang 日志美化输出 - ketty

2021-11-26 23:28:46 +08:00
 KesonAn

Ketty

ketty 是一个 Golang 开发的简单的日志美化输出 Logger 。

Github

https://github.com/anqiansong/ketty

安装

$ go install github.com/anqiansong/ketty@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 实例支持一些默认配置项:

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())

边框样式

预设样式

[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 └────────────
[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 .............

[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 *************
[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 +------------
[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 ★★★★★★★★★★★★★
[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 ╚════════════
[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"

自定义样式

// 边框横向、众项、拐角均为一种符号
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
    // 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 不支持美化输出。

2075 次点击
所在节点    Go 编程语言
8 条回复
tiedan
2021-11-27 00:34:43 +08:00
实用性略差
EvaCcino
2021-11-27 01:00:05 +08:00
日志系统杀手……
jasonkayzk
2021-11-27 09:27:51 +08:00
这种打到 elk 有些行不就是 ★★★★★★★★★★★★★ 😂
joesonw
2021-11-27 10:44:49 +08:00
建议可以兼容不同的其他 logger 。这种格式毕竟也还是开发阶段用的多,线上不太适合采集分析。
codeMore
2021-11-27 11:37:10 +08:00
日志量是不是扩大了一倍?
KesonAn
2021-11-27 12:05:22 +08:00
到线上可以禁用美化输出,这个的初衷主要是本地集成调式或者一些工具开发使用
KesonAn
2021-11-27 12:08:05 +08:00
@tiedan 本地调试可以用用
KesonAn
2021-11-27 12:08:37 +08:00
@joesonw Right!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/818273

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX