MCPcopy
hub / github.com/aceld/zinx / rotate

Method rotate

zutils/witer.go:131–166  ·  view source on GitHub ↗

rotate 切割文件

()

Source from the content-addressed store, hash-verified

129
130// rotate 切割文件
131func (w *Writer) rotate() error {
132 now := time.Now()
133 if w.file != nil {
134 w.bw.Flush()
135 w.file.Sync()
136 w.file.Close()
137 // 保存
138 fbak := w.fname + w.time2name(w.created)
139 fbakname := fbak + w.fsuffix
140 err := os.Rename(w.fpath, filepath.Join(w.fdir, fbakname))
141 if err == nil {
142 err1 := ZipToFile(filepath.Join(w.fdir, fbak+".zip"), filepath.Join(w.fdir, fbakname))
143 if err1 == nil {
144 os.Remove(filepath.Join(w.fdir, fbakname))
145 } else {
146 fmt.Println(err1)
147 }
148 }
149
150 w.size = 0
151 }
152 finfo, err := os.Stat(w.fpath)
153 w.created = now
154 if err == nil {
155 w.size = finfo.Size()
156 w.created = finfo.ModTime()
157 }
158 w.creates = w.created.AppendFormat(nil, time.RFC3339)
159 fout, err := os.OpenFile(w.fpath, os.O_CREATE|os.O_RDWR|os.O_APPEND, 0666)
160 if err != nil {
161 return err
162 }
163 w.file = fout
164 w.bw = bufio.NewWriter(w.file)
165 return nil
166}
167
168// 删除旧日志
169func (w *Writer) delete() {

Callers 1

WriteMethod · 0.95

Calls 5

time2nameMethod · 0.95
ZipToFileFunction · 0.85
FlushMethod · 0.80
CloseMethod · 0.80
RemoveMethod · 0.65

Tested by

no test coverage detected