Ram*_*hum 15 python logging django heroku
我INFO在 Heroku 日志中没有看到Django 生成的日志条目(级别为)。
这是我的配置:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse',
},
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
'not_development_filter': {
'()': NotDevelopmentFilter,
},
},
'handlers': {
'console':{
'level': 'INFO',
'class': 'logging.StreamHandler',
},
'null': {
'class': 'django.utils.log.NullHandler',
},
'mail_admins': {
'level': 'ERROR',
'filters': ['not_development_filter'],
'class': 'django.utils.log.AdminEmailHandler',
'include_html': True,
}
},
'loggers': {
'': {
'handlers': ['mail_admins', 'console'],
'level': 'INFO',
},
'django': {
'handlers': ['console'],
},
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': False,
},
'py.warnings': {
'handlers': ['console'],
},
}
}
Run Code Online (Sandbox Code Playgroud)
我想在 Heroku 界面中查看日志条目。知道为什么我没有在那里看到他们吗?
小智 2
在python-getting-started应用程序中,对于未标记的日志django,ERROR级别日志会显示在heroku日志中,但INFO日志不会显示。
为了使其适用于未标记的日志django,它需要如下配置(与您的配置类似):
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'class': 'logging.StreamHandler',
},
},
'loggers': {
'': {
'handlers': ['console'],
'level': 'INFO',
},
'django': {
'handlers': ['console'],
'level': 'INFO',
},
},
}
Run Code Online (Sandbox Code Playgroud)
因此,如果您将配置调整为像 python-getting-started 一样,包括 Procfile,它应该可以工作。
这是我添加到的未标记 django 的日志views/hello.py:
import logging
logger = logging.getLogger(__name__)
# Create your views here.
def index(request):
logger.error('testing logging!')
logger.info('testing info logging')
logger.debug('testing debug logging')
# return HttpResponse('Hello from Python!')
return render(request, 'index.html')
Run Code Online (Sandbox Code Playgroud)
当我第一次尝试时,只显示错误日志。当我在上一个代码片段上方的代码片段中添加日志配置时,信息和错误日志就会显示出来。这都是DEBUG = False(从存储库中的代码更改而来,其中有DEBUG = True)。
最好是拥有比空字符串 ( ) 更具体的loggers条目,而不是使用空字符串键(因此所有内容都会被记录'')。
最后,在您的日志文件中,存在一种情况,INFO 日志不会出现在控制台或 Heroku 日志上:如果它是一条指向 的 INFO 日志django.request,那么根据您的配置,它只会出现在 ,'mail_admins'因为propagate是False。我认为在这种情况下,设置为 更有propagate意义True。
| 归档时间: |
|
| 查看次数: |
3756 次 |
| 最近记录: |