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

Go 日志库 gookit/slog 发布 v0.5.1 版本

  •  1
     
  •   jxia · 2023-04-17 13:29:01 +08:00 · 2336 次点击
    这是一个创建于 621 天前的主题,其中的信息可能已经有所发展或是发生改变。

    gookit/slog 是一个易于使用的,轻量级、可配置、可扩展的日志库。支持多个级别,输出到多文件;内置文件日志处理、自动切割、清理、压缩等增强功能。

    控制台日志效果:

    console-log-all-level

    功能简介

    • 简单,无需配置,开箱即用
    • 支持常用的日志级别处理
      • 如: trace debug info notice warn error fatal panic
    • 可以任意扩展自己需要的 Handler Formatter
    • 支持同时添加多个 Handler 日志处理,输出日志到不同的地方
    • 支持自定义构建 Handler 处理器
      • 内置的 handler.Config handler.Builder,可以方便快捷的构建想要的日志处理器
    • 支持自定义 Formatter 格式化处理
      • 内置了 json text 两个日志记录格式化 Formatter
    • 已经内置了常用的日志处理器
      • console 输出日志到控制台,支持色彩输出
      • writer 输出日志到指定的 io.Writer
      • file 输出日志到指定文件,可选启用 buffer 缓冲写入
      • simple 输出日志到指定文件,无缓冲直接写入文件
      • rotate_file 输出日志到指定文件,并且同时支持按时间、按大小分割文件,默认启用 buffer 缓冲写入
      • 更多内置实现请查看 ./handler 文件夹

    输出日志到文件

    • 支持启用 buffer 缓冲日志写入
    • 支持按时间、按大小自动分割文件
    • 支持配置通过 gzip 压缩日志文件
    • 支持清理旧日志文件 配置: BackupNum BackupTime

    更多使用请看 README

    v0.5.1 更新日志

    更新

    • ⚡ perf: 优化处理日志消息数据的性能
    • 👔 up: 更新一些代码逻辑并添加更多单元测试

    其他

    • ✅ test: 更新 benchmark 测试并更新 readme

    v0.5.0 更新日志

    变更

    • 💥 break: 重命名一些接口和结构体

    新增功能

    • ✨ feat: handler - 配置新增字段 LevelMode, Level
    • ✨ feat: 为 handler.Builder 添加更多快速的配置方法

    其他

    • 📝 doc: 更新 readme 文档并添加更多用法示例
    • ⬆️ dep: 更新相关依赖工具库到最新版本

    更多使用请看 README

    16 条回复    2023-04-23 20:36:07 +08:00
    th00000
        1
    th00000  
       2023-04-17 15:39:18 +08:00
    第一眼看还以为是官方包里的 slog https://pkg.go.dev/golang.org/x/exp/slog
    起名大师了属于是
    leeraya
        2
    leeraya  
       2023-04-17 16:20:23 +08:00
    go 的增强日志包太卷了,大概有十几个有名的。建议像 zap 一样把自家的 log 包优势缺陷都跟其他 log 包对比下。这样能帮助技术选型时根据特点选取该用哪个包。
    kaddusabagei38
        3
    kaddusabagei38  
       2023-04-17 16:43:50 +08:00
    感觉自动清理压缩这种功能放在应用里好像不太妥..但是一想到小项目好像也没什么事情..

    先 star 支持了
    LeegoYih
        4
    LeegoYih  
       2023-04-17 16:48:49 +08:00
    level 没对齐,好难受
    jorneyr
        5
    jorneyr  
       2023-04-17 16:50:43 +08:00
    使用 json 格式吧,对日志分析友好。
    Nazz
        6
    Nazz  
       2023-04-17 16:53:41 +08:00
    @leeraya json 包更卷, 超过 1k star 的好多了
    jxia
        7
    jxia  
    OP
       2023-04-17 19:14:32 +08:00
    @th00000 哈哈 .... 这绝对不是照搬,我这项目 2020 年就开始了,可以看 commit 记录。 前段时间 官方才出了 exp/slog :)
    jxia
        8
    jxia  
    OP
       2023-04-17 19:18:06 +08:00
    @jorneyr 内置了 json text 两个日志记录格式化 Formatter ,都是支持的。
    matrix1010
        9
    matrix1010  
       2023-04-17 20:20:32 +08:00
    emoji 好多。上一个我看到每个 commit 都有 emoji 的项目是 fastapi
    zoharSoul
        10
    zoharSoul  
       2023-04-17 20:42:04 +08:00
    @kaddusabagei38 #3 都在应用里啊, logback, log4j, log4j2 等等都是.
    jxia
        11
    jxia  
    OP
       2023-04-17 21:56:55 +08:00
    @matrix1010 现在流行加这个... ide 有插件加也方便。
    kkkbbb
        12
    kkkbbb  
       2023-04-17 23:38:09 +08:00
    请问下内容中的图片怎么在 v2 显示,我是本地的图片想传到内容中,怎么操作呢?
    snxq1995
        13
    snxq1995  
       2023-04-18 09:03:12 +08:00
    建议来个横向对比看看。
    yolee599
        14
    yolee599  
       2023-04-18 09:12:29 +08:00 via Android
    LEVEL 一个长一个短,看得头疼
    fgwmlhdkkkw
        15
    fgwmlhdkkkw  
       2023-04-18 16:49:44 +08:00
    根据时间滚动的日志,能不能用定时器做?
    jxia
        16
    jxia  
    OP
       2023-04-23 20:36:07 +08:00
    @fgwmlhdkkkw 也可以,要注意加锁,更新文件句柄
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1938 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:57 · PVG 08:57 · LAX 16:57 · JFK 19:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.