将有关请求的信息添加到日志记录中。
django-requestlogging-redux的Python项目详细描述
这个包提供了一个日志过滤器和中间件来添加 有关当前对日志记录的请求的信息。
安装和使用
安装包,将django_requestlogging添加到 settings.INSTALLED_APPS,添加 django_requestlogging.middleware.LogSetupMiddleware到 settings.MIDDLEWARE_CLASSES,并添加 django_requestlogging.logging_filters.RequestFilter作为日志 过滤。请参阅下面的日志记录配置示例。
过滤器将有关当前请求的信息添加到日志记录中 记录。可以在日志记录中替换以下键 格式化程序字符串:
- ^{tt6}$
- The user agent string, provided by the client.
- ^{tt7}$
- The requested HTTP path.
- ^{tt8}$
- The remote IP address.
- ^{tt9}$
- The HTTP request method (e.g. GET, POST, PUT, DELETE, etc.)
- ^{tt10}$
- The server protocol (e.g. HTTP, HTTPS, etc.)
- ^{tt11}$
- The username for the logged-in user.
如果无法从当前 请求(或没有当前请求),连字符'-'是 替换为占位符。
日志配置示例
此日志记录配置可以添加到 DJANGO_SETTINGS_MODULE。它添加了一个未绑定的requestfilter, 它将被中间件绑定到当前请求,然后 响应时再次解除绑定。
LOGGING = { 'filters': { # Add an unbound RequestFilter. 'request': { '()': 'django_requestlogging.logging_filters.RequestFilter', }, }, 'formatters': { 'request_format': { 'format': '%(remote_addr)s %(username)s "%(request_method)s ' '%(path_info)s %(server_protocol)s" %(http_user_agent)s ' '%(message)s %(asctime)s', }, }, 'handlers': { 'console': { 'class': 'logging.StreamHandler', 'filters': ['request'], 'formatter': 'request_format', }, }, 'loggers': { 'myapp': { # Add your handlers that have the unbound request filter 'handlers': ['console'], # Optionally, add the unbound request filter to your # application. 'filters': ['request'], }, }, }