使用 lumberjack 进行日志文件切割

master
wangyj 6 years ago
parent 02f8a9a370
commit e8e3e0e71d

@ -31,6 +31,7 @@ import (
"github.com/kennygrant/sanitize" "github.com/kennygrant/sanitize"
"github.com/lunny/dingtalk_webhook" "github.com/lunny/dingtalk_webhook"
"github.com/natefinch/lumberjack"
"github.com/qiniu/log" "github.com/qiniu/log"
"github.com/soopsio/gosuv/pushover" "github.com/soopsio/gosuv/pushover"
"github.com/soopsio/kexec" "github.com/soopsio/kexec"
@ -212,7 +213,7 @@ type Process struct {
Stdout *QuickLossBroadcastWriter `json:"-"` Stdout *QuickLossBroadcastWriter `json:"-"`
Stderr *QuickLossBroadcastWriter `json:"-"` Stderr *QuickLossBroadcastWriter `json:"-"`
Output *QuickLossBroadcastWriter `json:"-"` Output *QuickLossBroadcastWriter `json:"-"`
OutputFile *os.File `json:"-"` OutputFile io.WriteCloser `json:"-"`
stopC chan syscall.Signal stopC chan syscall.Signal
retryLeft int retryLeft int
Status string `json:"status"` Status string `json:"status"`
@ -230,7 +231,17 @@ func (p *Process) buildCommand() *kexec.KCommand {
} }
var fout io.Writer var fout io.Writer
var err error var err error
p.OutputFile, err = os.OpenFile(filepath.Join(logDir, "output.log"), os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644) // p.OutputFile, err = os.OpenFile(filepath.Join(logDir, "output.log"), os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
// p.OutputFile = NewRotate(filepath.Join(logDir, "output.log"))
p.OutputFile = &lumberjack.Logger{
Filename: filepath.Join(logDir, "output.log"),
MaxSize: 1024,
MaxAge: 14,
MaxBackups: 14,
Compress: false,
LocalTime: true,
}
if err != nil { if err != nil {
log.Warn("create stdout log failed:", err) log.Warn("create stdout log failed:", err)
fout = ioutil.Discard fout = ioutil.Discard

Loading…
Cancel
Save