如何将来自GoWorkers(docs)的日志存储到文件中。我表明有一个WorkersLogger
界面,但我不明白如何使用它。
目前我有这个:
func main() {
workers.Configure(map[string]string)
workers.Middleware.Append(&midRetry{})
workers.Process("imp", worker.InitJob, 30)
workers.Run()
}
type midRetry struct{}
func (r *midRetry) Call(queue string, message *workers.Msg, next func() bool) (acknowledge bool) {
acknowledge = next()
return
}
我正在考虑在midRetry结构中创建chan string
,并在Call中发送消息,并在main中接收它们,然后将它们写入文件,但我觉得有更好的方法
答案 0 :(得分:3)
WorkerLogger
接口只是实现Println
和Printf
方法的结构的接口。
您只需定义新的log.Logger
,将os.File
作为输出(see the constructor),并将全局变量workers.Logger
设置为此新记录器。
示例:
file, _ := os.Create("log.txt")
workers.Logger = log.New(file, "[worker] ", log.LstdFlags)