Logger.info() не показывает сообщение в файле журнала в проекте Django
Я изучаю логирование в django. Лог файлы генерируются, но я не показываю нужное сообщение, которое я хочу показать в лог файле. вот мой код файл views.py:
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
import logging, traceback
logger = logging.getLogger('django')
def home(request):
logger.info('Some Message')
return render(request, 'home.html')
файл settings.py:
import os
LOGGING ={
'version':1,
'loggers':{
'django':{
'handlers':['file'],
'level':'DEBUG'
}
},
'handlers':{
'file':{
'level':'INFO',
'class':'logging.FileHandler',
'filename':'./logs/debug3.log',
'formatter':'simple'
}
},
'formatters':{
'simple':{
'format':'{levelname} {asctime} {module} {process:d} {thread:d} {message}',
'style':'{',
}
}
}
Ваша конфигурация протоколирования кажется правильной.
Django version 4.0.5, using settings 'proj.settings'
Я использую это для проверки конфигурации протоколирования:
proj/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app1', # <- example app
]
...
# Add to create the folders in Path
LOG_FILE_PATH = './logs'
LOG_FILENAME = 'debug3.log'
p = Path(LOG_FILE_PATH).resolve()
p.mkdir(parents=True, exist_ok=True)
LOGGING = {
'version': 1,
'loggers': {
'django': {
'handlers':['file'],
'level':'DEBUG'
}
},
'handlers': {
'file': {
'level':'INFO',
'class':'logging.FileHandler',
'filename': p / LOG_FILENAME,
'formatter':'simple'
}
},
'formatters': {
'simple': {
'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}',
'style': '{',
}
}
}
app1/views.py
from asyncio.log import logger
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
import logging, traceback
logger = logging.getLogger('django')
def home(request):
logger.info('Some Message')
return HttpResponse('Home')
app1/urls.py
from django.urls import path
from .views import home
urlpatterns = [
path('', home),
]
proj/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('', include('app1.urls')),
path('admin/', admin.site.urls),
]
Запустить веб-сервер
python manage.py runserver 0.0.0.0:8000 --insecure
Перейдите к файлу журнала и откройте его или выполните команду tail -f
файл журнала
INFO 2022-06-30 17:12:48,683 autoreload 70907 140544122230592 Watching for file changes with StatReloader
INFO 2022-06-30 17:13:03,650 views 70907 140544074688256 Some Message
INFO 2022-06-30 17:13:03,652 basehttp 70907 140544074688256 "GET / HTTP/1.1" 200 4
сообщение есть.