使用 Logs 或 cobra.Command Println 获取用户反馈?

问题描述

Spf13/cobra 命令提供了许多优雅的工具来向用户提供反馈。我有更多使用 Python/headless 服务的经验,其中标准是使用日志库,然后在必要时重定向到 stdio

然而,我越是探索眼镜蛇,就越觉得这是一条错误的道路。相反,我感觉我应该通过 cobra 发送所有内容,然后从该缓冲区中挑选任何应该用于日志记录的内容

这里有什么惯用的指导吗?

解决方法

对于旨在供用户阅读的消息,我建议使用 cobra.Command 提供的方法。

日志通常用于显示/保存将由开发人员阅读(在本例中为您)或用户明确想要阅读日志的消息。

根据这个推理,您实际上可以同时使用它们。例如,您可以执行

  • c.Println("<success message>") 告诉用户命令成功,以及
  • CLI 应用中的调试/信息/错误日志,如果用户将 --verbose 标志传递给您的应用,这些日志将显示(或保存在日志文件中)。