我正在尝试在我的 Django 项目中设置日志记录...我的第一次尝试,据说很简单,到目前为止一直失败。
这是我在 settings.py 中的日志:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}',
'style': '{',
},
'simple': {
'format': '{levelname} {message}',
'style': '{',
},
},
'filters': {
# 'special': {
# '()': 'project.logging.SpecialFilter',
# 'foo': 'bar',
# },
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
},
'handlers': {
'console': {
'level': 'INFO',
'filters': ['require_debug_true'],
'class': 'logging.StreamHandler',
'formatter': 'simple'
},
'mail_admins': {
'level': 'ERROR',
'class': 'django.utils.log.AdminEmailHandler',
# 'filters': ['special']
},
'file':{
'level': 'INFO',
'class': 'logging.FileHandler',
'filename': './logs/log_file1.log',
'formatter': 'verbose',
},
'apps_handler':{
'level': 'INFO',
'class': 'logging.FileHandler',
'filename': './logs/apps_logs.log',
'formatter': 'verbose',
}
},
'loggers': {
'django': {
'handlers': ['console'],
'propagate': True,
},
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': False,
},
**'Equipment': {
'handlers': ['console', 'apps_handler'],
'level': 'INFO',
# 'filters': ['special']
}**
}
}
正如这里所建议的:Django: logging only for my project's apps我试图将我的应用程序的日志隔离在一个单独的文件中,并且由于我的应用程序被命名为 Equipment 我制作了 Equipment logger
作为第一次尝试在 views.py 文件中的设备应用程序中,我尝试了以下操作:
**import logging
logger = logging.getLogger(__name__)**
@login_required
def dashboard(request):
types = Type.objects.all().order_by('name')
form = SubTypeForm(request.POST or None)
mezzi_list = SubType.objects.filter(type__name__icontains='mezzi').order_by('name')
form.fields['subType'].queryset = mezzi_list
**logging.info('hello darling: %s' % mezzi_list)**
context = {
'types': types,
'form': form
}
if request.method == 'POST':
if form.is_valid():
subType = form.cleaned_data['subType']
type = subType.type
return HttpResponseRedirect(reverse('equipment:item_create', args=(type.id, subType.id)))
else:
return render(request, 'equipment/equipment_dashboard.html', context)
return render(request, 'equipment/equipment_dashboard.html', context)
一个非常简单的调用 info log 并传入一个变量,只是为了在我每次访问仪表板视图时测试配置。
问题。文件总是空的?我在这里想念什么?
非常感谢您的帮助