问题描述
Spf13/cobra 命令提供了许多优雅的工具来向用户提供反馈。我有更多使用 Python/headless 服务的经验,其中标准是使用日志库,然后在必要时重定向到 stdio。
然而,我越是探索眼镜蛇,就越觉得这是一条错误的道路。相反,我感觉我应该通过 cobra 发送所有内容,然后从该缓冲区中挑选任何应该用于日志记录的内容。
这里有什么惯用的指导吗?
解决方法
对于旨在供用户阅读的消息,我建议使用 cobra.Command
提供的方法。
日志通常用于显示/保存将由开发人员阅读(在本例中为您)或用户明确想要阅读日志的消息。
根据这个推理,您实际上可以同时使用它们。例如,您可以执行
-
c.Println("<success message>")
告诉用户命令成功,以及 - CLI 应用中的调试/信息/错误日志,如果用户将
--verbose
标志传递给您的应用,这些日志将显示(或保存在日志文件中)。