The Go Programming Language
› http://golang.org/
› Go Playground
Go Projects
› Revel Web Framework
zoharSoul

golang 有按时间/日期切割的 log 库吗?

  •  
  •   zoharSoul · Jan 18, 2022 · 5936 views
    This topic created in 1754 days ago, the information mentioned may be changed or developed.

    类似 log4j/logback 那种的

    20 replies  •  2022-02-18 10:03:39 +08:00
    waising
    waising
    Jan 18, 2022
    1
    zoharSoul
    zoharSoul
    OP
    Jan 18, 2022
    3
    @z657386160z #2 这个是按文件大小的.
    mcfog
    mcfog
    Jan 18, 2022❤️1
    5
    zoharSoul
    zoharSoul
    OP
    Jan 18, 2022
    6
    @mcfog #5 看起来非常符合需求, 多谢大佬
    adoal
    adoal
    Jan 18, 2022
    9
    如果不考虑 Windows ,只在 Linux 运行的话,不如打到 syslog 里去,通过 logrotate 任务来切分。
    能用运维手段解决的就没必要用开发手段解决。运维手段用的基础设施往往是久经考验的。
    zoharSoul
    zoharSoul
    OP
    Jan 18, 2022
    10
    @adoal #9 log4j/logback/log4j2 之类的都是开发手段, 也是久经考验.
    adoal
    adoal
    Jan 18, 2022 via iPhone
    11
    好吧,对运维方式处理问题不感兴趣的纯程,byebye
    quzard
    quzard
    Jan 18, 2022 via Android
    12
    uber 开源的 zap 日志库
    zoharSoul
    zoharSoul
    OP
    Jan 18, 2022
    13
    @quzard #12 这个看起来完全不支持日志切割
    Immortal
    Immortal
    Jan 18, 2022
    14
    为什么就不考虑 linux 系统里自带又好用的 logrorate
    securityCoding
    securityCoding
    Jan 18, 2022 via Android
    15
    my3157
    my3157
    Jan 18, 2022 via Android
    16
    logrotate + signal ,完美解决
    dingyaguang117
    dingyaguang117
    Jan 18, 2022 via iPhone
    17
    我写了一个,原理大概就是 加锁 和 rename
    xuyang9978
    xuyang9978
    Jan 18, 2022 via iPhone
    18
    #1 的那个也不错,使用很方便,不过作者已经不维护了
    hululu
    hululu
    Jan 22, 2022
    19
    const rotate = "00 00 00 * * *"
    func RotateCrond(logger *lumberjack.Logger, rotate string) {
    rotateCrondOnce.Do(func() {
    c := cron.New(cron.WithSeconds())
    _, _ = c.AddFunc(rotate, func() {
    _ = logger.Rotate()
    })
    c.Start()
    })
    }
    SillyChenBrother
    SillyChenBrother
    Feb 18, 2022
    20
    我觉得很多都不好用,就自己写了一个。

    支持日志输出到控制台或文件,支持很多配置,如打印函数调用行,配置日志级别等。
    支持日志层级输出到不同文件,且支持文件切割,清除过期日志文件等。
    使用接口契约,你可以自行再次封装该库,我留有 SetCallerSkip 给你继续封装。

    https://github.com/hunterhug/golog
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1875 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 09:00 · PVG 17:00 · LAX 01:00 · JFK 04:00
    ♥ Do have faith in what you're doing.