[geany/www.geany.org] b1d2a5: Improve logging config
Enrico Tröger
git-noreply at xxxxx
Tue May 7 19:43:15 UTC 2019
Branch: refs/heads/master
Author: Enrico Tröger <enrico.troeger at uvena.de>
Committer: Enrico Tröger <enrico.troeger at uvena.de>
Date: Tue, 07 May 2019 19:43:15 UTC
Commit: b1d2a5f7c7d546580f879a924e4be29b522b3869
https://github.com/geany/www.geany.org/commit/b1d2a5f7c7d546580f879a924e4be29b522b3869
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).
More information about the Commits
mailing list