V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
KesonAn
V2EX  ›  Go 编程语言

Golang 日志美化输出 - ketty

  •  1
     
  •   KesonAn · 2021-11-26 23:28:46 +08:00 · 2060 次点击
    这是一个创建于 873 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    终端显示

    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 不支持美化输出。

    8 条回复    2021-11-27 12:08:37 +08:00
    tiedan
        1
    tiedan  
       2021-11-27 00:34:43 +08:00
    实用性略差
    EvaCcino
        2
    EvaCcino  
       2021-11-27 01:00:05 +08:00
    日志系统杀手……
    jasonkayzk
        3
    jasonkayzk  
       2021-11-27 09:27:51 +08:00
    这种打到 elk 有些行不就是 ★★★★★★★★★★★★★ 😂
    joesonw
        4
    joesonw  
       2021-11-27 10:44:49 +08:00 via iPhone
    建议可以兼容不同的其他 logger 。这种格式毕竟也还是开发阶段用的多,线上不太适合采集分析。
    codeMore
        5
    codeMore  
       2021-11-27 11:37:10 +08:00
    日志量是不是扩大了一倍?
    KesonAn
        6
    KesonAn  
    OP
       2021-11-27 12:05:22 +08:00
    到线上可以禁用美化输出,这个的初衷主要是本地集成调式或者一些工具开发使用
    KesonAn
        7
    KesonAn  
    OP
       2021-11-27 12:08:05 +08:00
    @tiedan 本地调试可以用用
    KesonAn
        8
    KesonAn  
    OP
       2021-11-27 12:08:37 +08:00
    @joesonw Right!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3786 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 04:26 · PVG 12:26 · LAX 21:26 · JFK 00:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.