英文:
GoWorkers how to store logs into a file
问题
我可以帮你翻译这段内容。以下是翻译的结果:
如何将来自GoWorkers的日志存储到文件中?我看到有一个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
函数中接收消息并将其写入文件,但我感觉还有更好的方法。
英文:
How can I store the logs which are coming from GoWorkers (docs) into a file. I show that there is a WorkersLogger
interface but I don't understand how to use it.
At the moment I have this:
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
}
I was thinking in creating a chan string
in the midRetry struct, and inside Call send messages on the channel, and receive them in main, and then write them to file, but I feel that there is a better way.
答案1
得分: 3
WorkerLogger
接口只是一个实现Println
和Printf
方法的结构体的接口。
你可以简单地定义一个新的log.Logger
,给它一个os.File
作为输出(参见构造函数),并将全局变量workers.Logger
设置为这个新的记录器。
示例:
file, _ := os.Create("log.txt")
workers.Logger = log.New(file, "[worker] ", log.LstdFlags)
请注意,这是一个代码示例,用于说明如何使用log.Logger
和os.File
来实现日志记录功能。你需要根据自己的需求进行适当的修改和调整。
英文:
The WorkerLogger
interface is just an interface for a struct that implements the Println
and Printf
methods.
You can simply define a new log.Logger
, give it an os.File
as output (see the constructor), and set the global var workers.Logger
to this new logger.
Example:
file, _ := os.Create("log.txt")
workers.Logger = log.New(file, "[worker] ", log.LstdFlags)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论