Golang Go语言 日志美化输出 - ketty

发布于 1周前 作者 phonegap100 来自 Go语言

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"))
}

终端显示

terminal

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

9 回复

实用性略差

更多关于Golang Go语言 日志美化输出 - ketty的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


日志系统杀手……

这种打到 elk 有些行不就是 ★★★★★★★★★★★★★ 😂

建议可以兼容不同的其他 logger 。这种格式毕竟也还是开发阶段用的多,线上不太适合采集分析。

日志量是不是扩大了一倍?

到线上可以禁用美化输出,这个的初衷主要是本地集成调式或者一些工具开发使用

本地调试可以用用

关于Golang(Go语言)中的日志美化输出,这是一个非常实用且常见的需求,特别是在开发过程中,良好的日志格式不仅能提高可读性,还能帮助开发者更快地定位问题。ketty 这个名字听起来像是一个具体的库或者工具,但在我所知的Go语言生态中,并没有直接名为 ketty 的日志美化库。不过,我可以给你一些通用的建议和流行的Go日志库推荐。

  1. 标准库 log 的扩展:Go的标准库 log 提供了基本的日志功能,但格式较为简单。你可以通过自定义日志输出格式来实现美化,比如添加时间戳、日志级别、文件名和行号等。

  2. 第三方日志库

    • Zap:Uber开源的高性能日志库,支持结构化日志,且配置灵活,可以很容易地实现日志的美化输出。
    • Logrus:一个完全可配置的日志库,支持多种日志格式(如JSON、文本),并且有丰富的插件生态。
    • Glog:Google的开源日志库,基于Go的标准库 log,但增加了更多的功能和配置选项。
  3. 自定义实现:如果上述库都不满足你的需求,你也可以考虑自己实现一个日志美化输出的库,通过实现 io.Writer 接口来自定义日志的输出格式。

建议根据你的具体需求选择合适的日志库,并参考其文档进行配置和使用。如果 ketty 是某个特定项目或团队内部的工具,建议查阅相关文档或询问团队成员以获取更多信息。

回到顶部