mirror of
https://github.com/zrepl/zrepl.git
synced 2025-02-02 03:29:13 +01:00
jobrun: per-job logger
This commit is contained in:
parent
3b6d79ec67
commit
55463e5f26
13
cmd/main.go
13
cmd/main.go
@ -13,6 +13,7 @@ import (
|
||||
|
||||
var conf Config
|
||||
var runner *jobrun.JobRunner
|
||||
var logFlags int = log.LUTC | log.Ldate | log.Ltime
|
||||
|
||||
func main() {
|
||||
|
||||
@ -32,7 +33,7 @@ func main() {
|
||||
return
|
||||
}
|
||||
|
||||
jobrunLogger := log.New(os.Stderr, "jobrun: ", log.LUTC|log.Ldate|log.Ltime)
|
||||
jobrunLogger := log.New(os.Stderr, "jobrun ", logFlags)
|
||||
runner = jobrun.NewJobRunner(jobrunLogger)
|
||||
return
|
||||
}
|
||||
@ -81,10 +82,10 @@ func doRun(c *cli.Context) error {
|
||||
Name: fmt.Sprintf("pull%d", i),
|
||||
Interval: time.Duration(5 * time.Second),
|
||||
Repeats: true,
|
||||
RunFunc: func() error {
|
||||
fmt.Printf("%v: %#v\n", time.Now(), pull)
|
||||
RunFunc: func(log jobrun.Logger) error {
|
||||
log.Printf("%v: %#v\n", time.Now(), pull)
|
||||
time.Sleep(10 * time.Second)
|
||||
fmt.Printf("%v: %#v\n", time.Now(), pull)
|
||||
log.Printf("%v: %#v\n", time.Now(), pull)
|
||||
return nil
|
||||
},
|
||||
}
|
||||
@ -99,8 +100,8 @@ func doRun(c *cli.Context) error {
|
||||
Name: fmt.Sprintf("push%d", i),
|
||||
Interval: time.Duration(5 * time.Second),
|
||||
Repeats: true,
|
||||
RunFunc: func() error {
|
||||
fmt.Printf("%v: %#v\n", time.Now(), push)
|
||||
RunFunc: func(log jobrun.Logger) error {
|
||||
log.Printf("%v: %#v\n", time.Now(), push)
|
||||
return nil
|
||||
},
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package jobrun
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
)
|
||||
|
||||
@ -8,9 +9,18 @@ type Logger interface {
|
||||
Printf(format string, v ...interface{})
|
||||
}
|
||||
|
||||
type jobLogger struct {
|
||||
MainLog Logger
|
||||
JobName string
|
||||
}
|
||||
|
||||
func (l jobLogger) Printf(format string, v ...interface{}) {
|
||||
l.MainLog.Printf(fmt.Sprintf("job[%s]: %s", l.JobName, format), v...)
|
||||
}
|
||||
|
||||
type Job struct {
|
||||
Name string
|
||||
RunFunc func() (err error)
|
||||
RunFunc func(log Logger) (err error)
|
||||
LastStart time.Time
|
||||
LastError error
|
||||
Interval time.Duration
|
||||
@ -114,7 +124,8 @@ loop:
|
||||
job.LastStart = now
|
||||
|
||||
go func(job Job) {
|
||||
if err := job.RunFunc(); err != nil {
|
||||
jobLog := jobLogger{r.logger, job.Name}
|
||||
if err := job.RunFunc(jobLog); err != nil {
|
||||
job.LastError = err
|
||||
r.notificationChan <- job
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user