我的Django Logger在我的本地计算机上运行正常,但在将其部署到服务器时无效。
Local:OS X 10.9.5,Python 2.7,Django 1.10.5
AWS服务器:Ubuntu,Nginx,Gunicorn,Django
在我的本地设置中运行python manage.py runserver
,这将在我的根目录中创建debug.log文件。当我通过虚拟环境启动本地服务器时,我通过localhost:8000访问该站点,并在debug.log上获取这些日志。
"GET / HTTP/1.1" 200 2908
"GET /projects HTTP/1.1" 200 3461
Inside app views index
在我的生产服务器上运行python manage.py runserver
,这将创建debug.log文件。我通过sudo service nginx restart
重新启动Nginx服务器,然后访问我的网页并单击与运行本地服务器时相同的链接。
当我vim debug.log
进入debug.log文件后,在访问网站并点击网页中的相同链接后,我看不到任何调试消息。
为什么我的生产环境中没有记录到debug.log中的日志记录数据?我错过了什么?
views.py
import logging
logger = logging.getLogger(__name__)
def index(request):
logger.debug('Inside app views index')
return render(request, "first_app/index.html")
local_settings.py (应该没关系,但我在本地计算机和生产服务器中使用local_settings.py)
#BASE_DIR was already part of django settings.py file when created.
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': os.path.join(BASE_DIR, 'debug.log'),
},
'null': {
'class': 'logging.NullHandler',
},
},
'loggers': {
'django': {
'handlers': ['file'],
'level': 'DEBUG',
'propagate': True,
},
'apps': {
'handlers': ['file'],
'level': 'DEBUG',
'propagate': True,
},
'django.db.backends': {
'handlers': ['null'],
'propagate': False,
},
},
}
我的档案路线是
-homepage
-apps
-homepage
-static
-venv
manage.py
homepage.sock
db.sqlite3
debug.log
requirement.txt
答案 0 :(得分:0)
我相信Nginx会截获请求(GET,POST等)日志,并将其记录到其nginx-access.log中,而您的INFO,ERROR日志应位于debug.log