Branch: refs/heads/master Author: Enrico Tröger enrico.troeger@uvena.de Committer: Enrico Tröger enrico.troeger@uvena.de Date: Tue, 07 May 2019 19:43:15 UTC Commit: b1d2a5f7c7d546580f879a924e4be29b522b3869 https://github.com/geany/www.geany.org/commit/b1d2a5f7c7d546580f879a924e4be2...
Log Message: ----------- Improve logging config
Log request IDs as passed as header from webserver. General overhaul of the logging configuration to more sensible settings. Capture warnings and log them using the logging subsystem.
Modified Paths: -------------- README.dev.md geany/settings.py requirements.txt
Modified: README.dev.md 2 lines changed, 2 insertions(+), 0 deletions(-) =================================================================== @@ -101,6 +101,8 @@ the settings to your needs: INTERNAL_IPS = ("127.0.0.1",) ALLOWED_HOSTS = ('127.0.0.1', 'localhost')
+ LOGGING['handlers']['file']['filename'] = '/tmp/geany_django.log' + STATIC_DOCS_GEANY_SOURCE_DIR = '/path/to/geany/source/or/just/empty' IRC_USER_LIST_FILE = '/path/to/irc/data/or/just/empty'
Modified: geany/settings.py 60 lines changed, 53 insertions(+), 7 deletions(-) =================================================================== @@ -14,6 +14,7 @@
from __future__ import absolute_import, unicode_literals
+import logging import os
from django.utils.translation import ugettext_lazy as _ @@ -332,6 +333,7 @@ # these middleware classes will be applied in the order given, and in the # response phase the middleware will be applied in reverse order. MIDDLEWARE = ( + "log_request_id.middleware.RequestIDMiddleware", "mezzanine.core.middleware.UpdateCacheMiddleware",
"django.middleware.security.SecurityMiddleware", @@ -455,64 +457,108 @@ ######################### # LOGGING # ######################### +logging.captureWarnings(True) # log warnings using the logging subsystem LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'verbose': { - 'format': '%(asctime)s %(name)s %(process)d %(threadName)s %(levelname)s %(message)s' + 'format': '%(asctime)s %(name)s %(process)d %(threadName)s %(levelname)s [%(request_id)s] %(message)s' }, }, 'filters': { 'require_debug_false': { '()': 'django.utils.log.RequireDebugFalse' - } + }, + 'require_debug_true': { + '()': 'django.utils.log.RequireDebugTrue' + }, + 'request_id': { + '()': 'log_request_id.filters.RequestIDFilter' + }, }, 'handlers': { 'console': { 'level': 'DEBUG', 'class': 'logging.StreamHandler', + 'filters': ['require_debug_true', 'request_id'], 'formatter': 'verbose' }, 'mail_admins': { 'level': 'WARN', 'class': 'django.utils.log.AdminEmailHandler', - 'filters': ['require_debug_false'] - } + 'filters': ['require_debug_false', 'request_id'] + }, + 'file': { + 'level': 'DEBUG', + 'class': 'logging.FileHandler', + 'filename': '/srv/django/log/geany_web.log', + 'filters': ['request_id'], + 'formatter': 'verbose' + }, }, 'loggers': { '': { - 'handlers': ['console', 'mail_admins'], + 'handlers': ['console', 'file', 'mail_admins'], 'level': 'DEBUG', 'propagate': False, }, 'root': { - 'handlers': ['console', 'mail_admins'], + 'handlers': ['console', 'file', 'mail_admins'], 'level': 'DEBUG', 'propagate': False, }, 'py.warnings': { + 'handlers': [], 'propagate': True, 'level': 'DEBUG', }, 'django': { + 'handlers': [], 'propagate': True, 'level': 'DEBUG', }, - 'django.db': { + 'django.db.backends': { + 'handlers': [], + 'level': 'INFO', + 'propagate': True, + }, + 'django.db.backends.schema': { + 'handlers': [], + 'level': 'INFO', + 'propagate': True, + }, + 'django.server': { + 'handlers': [], + 'level': 'INFO', + 'propagate': True, + }, + 'django.security': { + 'handlers': [], 'level': 'INFO', 'propagate': True, }, 'django.template': { + 'handlers': [], 'level': 'INFO', 'propagate': True, }, 'MARKDOWN': { + 'handlers': [], + 'level': 'INFO', + 'propagate': True, + }, + 'PIL': { + 'handlers': [], 'level': 'INFO', 'propagate': True, }, } } +# add "request_id" attribute to log records (read from the header set by the webserver) +GENERATE_REQUEST_ID_IF_NOT_IN_HEADER = False +LOG_REQUEST_ID_HEADER = 'HTTP_REQUEST_ID' +LOG_REQUESTS = False
###################
Modified: requirements.txt 1 lines changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -4,6 +4,7 @@ mysqlclient django-compressor django-extensions django-honeypot +django-log-request-id django-memcache-status mezzanine-pagedown pygments
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).