为什么这个零日志钩子是一个无效的分配?

  • 本文关键字:一个 无效 分配 日志 go
  • 更新时间 :
  • 英文 :


我想将zerolog消息存储在一个切片中,以便于访问最后 n 条消息。memoryLog.messages保持空,golangci-lint抱怨ineffective assignment to field memoryLog.messages。我仍然是Go的新手,感觉我错过了一些明显的东西,但我就是想不通。

type memoryLog struct {
config   config
messages []string
}
func (memoryLog memoryLog) Run(event *zerolog.Event, level zerolog.Level, message string) {
memoryLog.messages = append([]string{message}, memoryLog.messages...)
if len(memoryLog.messages) > memoryLog.config.MemoryLogMaxItems {
memoryLog.messages = memoryLog.messages[:memoryLog.config.MemoryLogMaxItems]
}
}
memoryLog := memoryLog{config: config}
logger := log.Hook(memoryLog)

感谢帮助,我让它工作:

func (log *memoryLog) Run(event *zerolog.Event, level zerolog.Level, message string) {
//...
}
logger := log.Hook(&memoryLog)

最新更新