diff --git a/apps/swh-scheduler/entrypoint.sh b/apps/swh-scheduler/entrypoint.sh
index 69cface1646c22abdc71cb01a4cc0ae0778c7bb0..9fb02595f08e1d3ec095c7d3adb4a93fde89c30c 100644
--- a/apps/swh-scheduler/entrypoint.sh
+++ b/apps/swh-scheduler/entrypoint.sh
@@ -17,9 +17,14 @@ case "$1" in
         exec swh $@
         ;;
     *)
+        EXTRA_CLI_FLAGS=""
+        if [ ! -z "${SWH_LOG_CONFIG_JSON}" ]; then
+            EXTRA_CLI_FLAGS="--log-config-json ${SWH_LOG_CONFIG_JSON}"
+        fi
         echo Starting the swh-scheduler API server
         exec gunicorn --bind 0.0.0.0:${PORT} \
              --log-level ${SWH_LOG_LEVEL:-INFO} \
+             ${EXTRA_CLI_FLAGS} \
              --threads ${THREADS} \
              --workers ${WORKERS} \
              --reload \
diff --git a/apps/swh-scheduler/requirements.txt b/apps/swh-scheduler/requirements.txt
index 206155cdd349aadd9bf66cb7b419151e70265390..7d751ba352489c3df7d3df025763487001189bf7 100644
--- a/apps/swh-scheduler/requirements.txt
+++ b/apps/swh-scheduler/requirements.txt
@@ -1 +1,2 @@
 swh.scheduler
+python-json-logger