如何在 Heroku Papertrail 和 Waitress 中使用 Django 日志记录
How to Use Django Logging with Heroku Papertrail & Waitress
所以我一直在尝试在 Heroku 上的 Waitress 服务器 运行 上使用 Django 1.9.5/Python 3 进行日志记录,但到目前为止我一直无法做到。这是我添加到生产服务器 Django 设置中的配置:
settings.py
LOGGING = {
"version": 1,
"disable_existing_loggers": False,
"handlers": {
"console": {
"level": "INFO",
"class": "logging.StreamHandler",
"stream": sys.stdout
},
},
"loggers": {
"django": {
"handlers": ["console"],
}
}
}
views.py
logger = logging.getLogger(__name__)
class IndexView(View):
def get(self, request):
logger.info('This is a test INFO error')
return render(request, 'index.html', {})
知道为什么这没有将任何内容输出到我的 Heroku Papertrail 中吗?
您的日志记录配置设置为捕获 django
命名空间下的所有日志,但在您的 views.py
中,您使用的是另一个命名空间集:
logger = logging.getLogger(__name__) # __name__ resolves to the name of your app.
您需要将您的应用程序(假设它被称为 myapp
)添加到您的日志记录配置中:
"loggers": {
"django": {
"handlers": ["console"],
},
"myapp": {
"handlers": ["console"],
}
}
所以我一直在尝试在 Heroku 上的 Waitress 服务器 运行 上使用 Django 1.9.5/Python 3 进行日志记录,但到目前为止我一直无法做到。这是我添加到生产服务器 Django 设置中的配置:
settings.py
LOGGING = {
"version": 1,
"disable_existing_loggers": False,
"handlers": {
"console": {
"level": "INFO",
"class": "logging.StreamHandler",
"stream": sys.stdout
},
},
"loggers": {
"django": {
"handlers": ["console"],
}
}
}
views.py
logger = logging.getLogger(__name__)
class IndexView(View):
def get(self, request):
logger.info('This is a test INFO error')
return render(request, 'index.html', {})
知道为什么这没有将任何内容输出到我的 Heroku Papertrail 中吗?
您的日志记录配置设置为捕获 django
命名空间下的所有日志,但在您的 views.py
中,您使用的是另一个命名空间集:
logger = logging.getLogger(__name__) # __name__ resolves to the name of your app.
您需要将您的应用程序(假设它被称为 myapp
)添加到您的日志记录配置中:
"loggers": {
"django": {
"handlers": ["console"],
},
"myapp": {
"handlers": ["console"],
}
}