From beefb0a18329e4a244c0d276b7a30132565ea13b Mon Sep 17 00:00:00 2001
From: Bernhard Mallinger <bernhard.mallinger@eox.at>
Date: Mon, 21 Feb 2022 16:59:51 +0100
Subject: [PATCH] Also configure structlog logging for eoxserver django config

It will only log regular strings as json though since it's not using
structlog loggers
---
 configure.sh | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/configure.sh b/configure.sh
index a2e8d17..1b42278 100755
--- a/configure.sh
+++ b/configure.sh
@@ -6,6 +6,7 @@
     ENABLE_HTTP_ACCESS=${ENABLE_HTTP_ACCESS:="false"}
     # Configure instance
     sed -e "s/'disable_existing_loggers': True,/'disable_existing_loggers': False,/" -i pvs_instance/settings.py
+    sed -e "s/import os/import os\nimport structlog/" -i pvs_instance/settings.py
     HANDLERS="'handlers': {\n
         'null': {\n
             'level':'DEBUG',\n
@@ -14,7 +15,7 @@
         'console': {\n
             'level': 'DEBUG' if DEBUG else 'INFO',\n
             'class': 'logging.StreamHandler',\n
-            'formatter': 'verbose' if DEBUG else 'simple',\n
+            'formatter': 'json',\n
             'filters': [],\n
         },\n
     },"
@@ -25,8 +26,15 @@
             'propagate': False,\n
         },
     }"
+    FORMATTERS="'formatters': {\n
+        'json': {\n
+            '()': structlog.stdlib.ProcessorFormatter,\n
+            'processor': structlog.dev.ConsoleRenderer() if DEBUG else structlog.processors.JSONRenderer(),
+        },
+    },"
     sed -e "/^    'handlers': {$/,/^    },$/c `echo ${HANDLERS}`" -i pvs_instance/settings.py
     sed -e "/^    'loggers': {$/,/^    }$/c `echo ${LOGGERS}`" -i pvs_instance/settings.py
+    sed -e "/^    'formatters': {$/,/^    },$/c `echo ${FORMATTERS}`" -i pvs_instance/settings.py
 
     sed -e "s,http_service_url=http://localhost:8000/ows,http_service_url=${APACHE_ALIAS}/ows," -i pvs_instance/conf/eoxserver.conf
     sed -e "s/resampling_method=average/resampling_method=near/" -i pvs_instance/conf/eoxserver.conf
-- 
GitLab