SkillAgentSearch skills...

Logrotate

A Lightweight and concurrency safe rotate log io.Writer. Trigger rotate event by time.Timer.

Install / Use

/learn @Me1onRind/Logrotate
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

logrotate

Learn from https://github.com/lestrrat-go/file-rotatelogs. But rotate driven by time.Timer so more fast.

Example

package main

import (
    "fmt"
    "github.com/Me1onRind/logrotate"
    "time"
)

func main() {
    logPath := "./log/data.log.2006010215"
    writer, err := logrotate.NewRoteteLog(
        logPath,
        logrotate.WithRotateTime(time.Hour),
        logrotate.WithCurLogLinkname("./log/data.log"),
        logrotate.WithDeleteExpiredFile(time.Hour*24*7, "data.log.*"),
    )
    if err != nil {
        fmt.Println(err)
        return
    }
    defer writer.Close()
    if _, err := writer.Write([]byte("Hello,World!\n")); err != nil {
        fmt.Println(err)
        return
    }
}

configuration

RotateTime

File Rotate Interval

CurLogLinkname

Link to latest logfile(hard link)

DeleteExpiredFile

Judege expired by laste modify time.

Only delete satisfying file wildcard filename

maxAge

Log file retention time.

fileWilcard

Deleted file wildcard

View on GitHub
GitHub Stars8
CategoryDevelopment
Updated2y ago
Forks5

Languages

Go

Security Score

75/100

Audited on Nov 15, 2023

No findings