dqx13503925528 2015-08-12 14:45
浏览 22
已采纳

GoWorkers如何将日志存储到文件中

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条回答 默认 最新

  • doujiaohuo1096 2015-08-12 14:50
    关注

    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)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分