bizlogger是一款可輸出CSV日誌並按時間切分的日誌模塊,分割符可定製。goroutine安全。日誌字符串拼接採用先計算總長度再一次性分配內存的方法來提升效率。按時間切分功能利用的是logrotator來實現的。
用法:
package main
import (
"fmt"
"github.com/pochard/bizlogger"
"time"
)
func main() {
// rollup every 20 minutes. And the log line is separated by ","
logger, err := bizlogger.NewTabLogger("/data/web_log/click1-%Y%m%d-%H%M.log", 20*time.Minute, ",")
if err != nil {
fmt.Printf("%v", err)
return
}
defer logger.Close()
sl := make([]string, 4)
sl[0] = "410001"
sl[1] = "1583893679"
sl[2] = "183.199.195.151"
sl[3] = "C03FD5AAB4CA"
for i := 0; i != 10; i++ {
err := logger.Log(sl)
if err != nil {
fmt.Printf("%v", err)
}
}
}
輸出日誌:
click1-20200328-0920.log
click1-20200328-0940.log
click1-20200328-1000.log
日誌內容:
410001,1583893679,183.199.195.151,C03FD5AAB4CA
410001,1583893679,183.199.195.151,C03FD5AAB4CA
410001,1583893679,183.199.195.151,C03FD5AAB4CA
410001,1583893679,183.199.195.151,C03FD5AAB4CA
410001,1583893679,183.199.195.151,C03FD5AAB4CA
410001,1583893679,183.199.195.151,C03FD5AAB4CA
410001,1583893679,183.199.195.151,C03FD5AAB4CA
410001,1583893679,183.199.195.151,C03FD5AAB4CA
410001,1583893679,183.199.195.151,C03FD5AAB4CA
410001,1583893679,183.199.195.151,C03FD5AAB4CA
相關文章: