登录
首页 >  Golang >  Go问答

glog如何设置文件大小,并且按日期分

来源:SegmentFault

时间:2023-01-08 11:08:59 418浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《glog如何设置文件大小,并且按日期分》,介绍一下go,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

glog如何设置文件大小,并且按日期分

正确答案

设置

glog.MaxSize
的大小,可以按文件大小分割。
要按日期分割,可以修改源码 glog.go#L814-L826

var (
    // 最大时间间隔
    MaxTimeLag time.Duration = time.Hour*24
    // 最后一次的日志文件时间
    lastTime time.Time = time.Now()
)
func (sb *syncBuffer) Write(p []byte) (n int, err error) {
    now := time.Now()
    if (sb.nbytes+uint64(len(p)) >= MaxSize) || (now.Sub(lastTime) >= MaxTimeLag) {
        for now.Sub(lastTime) >= MaxTimeLag {
            lastTime = lastTime.Add(MaxTimeLag)
        }
        if err := sb.rotateFile(now); err != nil {
            sb.logger.exit(err)
        }
    }
    if now.Sub(lastTime) >= MaxTimeLag {
        lastTime = lastTime.Add(MaxTimeLag)
        if err := sb.rotateFile(now); err != nil {
            sb.logger.exit(err)
        }
    }
    n, err = sb.Writer.Write(p)
    sb.nbytes += uint64(n)
    if err != nil {
        sb.logger.exit(err)
    }
    return
}

好了,本文到此结束,带大家了解了《glog如何设置文件大小,并且按日期分》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表