我正在Django服务器上设置日志记录。我希望能够将任意信息级别的字符串记录到服务器的标准输出中,因此它会出现在标准Django消息旁边,如下所示:
[24/Feb/2014 20:37:03] "POST /v1/events/ HTTP/1.1" 201 0
以下是我当前的日志记录配置:
^{pr2}$在一个模型.py在我的django项目的应用程序中,我在顶部执行以下操作:
import logging
logger = logging.getLogger(__name__)
然后,在一些代码中,我编写并运行以下代码:
logger.info('triggering notifications')
代码到达了调用它的位置,但是没有任何内容写入服务器的stdout。我错过什么了吗?我在本地运行,DEBUG=True,但是我希望即使在生产环境中DEBUG=False也能显示信息消息。在
__name__
是包含记录器的python模块的名称。因此,要使您的记录器正常工作,您应该在中重命名您的记录器设置.pyfromdjango
到从中调用getLogger
的模块的名称。第二个选项-只需将__name__
更改为django
:更新您的评论:
您只需将您的项目名称'记录器添加到loggers列表。记录器名称的虚线路径定义了一个层次结构。例如,如果您需要,比方说,项目中“某些应用程序”的文件日志以及所有其他应用程序的日志消息(
^{pr2}$INFO
级别)应该只转到控制台,那么您的日志记录者列表可以如下所示:在中调用
logger = logging.getLogger(__name__)
将得到一个记录器,该记录器应将所有消息记录到文件中,并传播到根项目记录器以在控制台上显示它们。所有其他应用程序模块__name__
将只匹配根项目记录器:your_project_name
,它将只在控制台上打印消息。如果需要,可以在树中再添加一个级别,例如您的\u项目_name.some_应用程序.models可以使用mail_admins
处理程序向管理员报告一些数据库问题。当然,你可以在不同的层次结构中更改不同的记录器级别!在相关问题 更多 >
编程相关推荐