Flask 从烧瓶扩展记录可以吗?

Flask 从烧瓶扩展记录可以吗?,flask,Flask,我在查看Flask扩展注册表中的源代码。我可能看了6到7个项目,没有找到任何一个记录输出 我的问题是:这样做可以吗?如果是,我应该使用app.logger还是我自己的记录器?是的,您应该记录-否,您不应该使用应用程序记录器,因为用户将无法单独配置扩展的日志详细性 相反,使用Python的内置日志模块创建您自己的日志记录器。添加一个NullHandler(Python3有一个,为Python2创建您自己的NullHandler),这样默认情况下库不会记录任何内容。添加一个文档部分,解释用户如何访问

我在查看Flask扩展注册表中的源代码。我可能看了6到7个项目,没有找到任何一个记录输出


我的问题是:这样做可以吗?如果是,我应该使用app.logger还是我自己的记录器?

是的,您应该记录-否,您不应该使用应用程序记录器,因为用户将无法单独配置扩展的日志详细性

相反,使用Python的内置日志模块创建您自己的日志记录器。添加一个
NullHandler
(Python3有一个,为Python2创建您自己的
NullHandler
),这样默认情况下库不会记录任何内容。添加一个文档部分,解释用户如何访问记录器以设置处理程序(并明确配置级别,如果他们愿意)

与通常情况一样,关于这一主题,以下是一些非常好的建议:

为库配置日志记录 在开发使用日志记录的库时,您应该注意记录库如何使用日志记录—例如,使用的记录器的名称。还需要考虑其日志记录配置。如果使用应用程序不使用日志记录,并且库代码进行日志记录调用,则(如前一节所述)严重性
警告
及更高的事件将打印到
sys.stderr
。这被认为是最佳违约行为

如果出于某种原因,您不希望在没有任何日志记录配置的情况下打印这些消息,则可以将不执行任何操作处理程序附加到库的顶级记录器。这避免了打印消息,因为库的事件总是会找到处理程序:它只是不产生任何输出。如果库用户配置日志以供应用程序使用,那么该配置可能会添加一些处理程序,并且如果适当地配置了级别,那么在库代码中进行的日志调用将正常地向这些处理程序发送输出