从Flask扩展程序登录是否可以?

时间:2016-05-03 21:35:27

标签: flask

我正在查看Flask Extension Registry的来源。我可能看过大约6或7个项目,但找不到任何记录输出。

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

1 个答案:

答案 0 :(得分:2)

是的,您应该记录 - 不,您不应该使用应用程序记录器,因为用户将无法单独配置您的分机的记录详细程度。

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

通常情况下,Python's documentation中有关于此主题的一些非常好的建议:

  

配置库的日志记录

     

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

     

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