【发布时间】:2017-06-23 18:35:08
【问题描述】:
在我正在开发的一个开源 Django 库中,logging 模块主要用于通知用户潜在的错误:
import logging
logger = logging.getLogger(__name__)
def my_wonderful_function():
# ... some code ...
if problem_detected:
logger.error('Please pay attention, something is wrong...')
由于这种方法在大多数情况下都可以正常工作,因此如果 Python 2 用户没有为我的包配置日志记录系统,他们会收到错误消息:
找不到记录器“library.module”的处理程序
一旦使用记录器。
此错误不会打印到 Python 3 用户,因为当找不到特定记录器的处理程序时,有一种回退机制将消息输出到默认的 StreamHandler(请参阅 the code)。
我的问题是:
有没有一种好方法可以向用户报告错误和警告,但在用户不想配置日志记录时不打印(尤其是不打印错误)?
【问题讨论】:
-
查看官方 Django 日志记录文档docs.djangoproject.com/en/1.11/topics/logging