gpt4 book ai didi

Django 日志记录不输出到 nginx 服务器上的日志文件

转载 作者:行者123 更新时间:2023-12-05 06:40:03 26 4
gpt4 key购买 nike

我的 Django Logger 在我的本地机器上运行良好,但当我将它部署到服务器时却无法运行。

本地: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

最佳答案

我相信请求(GET、POST 等)日志会被 Nginx 拦截并记录到它的 nginx-access.log 中,而您的 INFO、ERROR 日志应该在 debug.log 中

关于Django 日志记录不输出到 nginx 服务器上的日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43714349/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com