From b9b32d4b7d310fa5a035cef733dd751c6dc7fb0a Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Thu, 21 Sep 2023 14:54:54 -0500 Subject: [PATCH] Add option to (poorly) format SQL for logs --- .../rdbms/actions/AbstractRDBMSAction.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/qqq-backend-module-rdbms/src/main/java/com/kingsrook/qqq/backend/module/rdbms/actions/AbstractRDBMSAction.java b/qqq-backend-module-rdbms/src/main/java/com/kingsrook/qqq/backend/module/rdbms/actions/AbstractRDBMSAction.java index 8d223435..6037ad75 100644 --- a/qqq-backend-module-rdbms/src/main/java/com/kingsrook/qqq/backend/module/rdbms/actions/AbstractRDBMSAction.java +++ b/qqq-backend-module-rdbms/src/main/java/com/kingsrook/qqq/backend/module/rdbms/actions/AbstractRDBMSAction.java @@ -987,6 +987,16 @@ public abstract class AbstractRDBMSAction implements QActionInterface + /******************************************************************************* + ** Make it easy (e.g., for tests) to turn on poor-man's formatting of SQL + *******************************************************************************/ + public static void setLogSQLReformat(boolean doReformat) + { + System.setProperty("qqq.rdbms.logSQL.reformat", String.valueOf(doReformat)); + } + + + /******************************************************************************* ** *******************************************************************************/ @@ -998,6 +1008,19 @@ public abstract class AbstractRDBMSAction implements QActionInterface { params = params.size() <= 100 ? params : params.subList(0, 99); + ///////////////////////////////////////////////////////////////////////////// + // (very very) poor man's version of sql formatting... if property is true // + ///////////////////////////////////////////////////////////////////////////// + if(System.getProperty("qqq.rdbms.logSQL.reformat", "false").equalsIgnoreCase("true")) + { + sql = Objects.requireNonNullElse(sql, "").toString() + .replaceAll("FROM ", "\nFROM\n ") + .replaceAll("INNER", "\n INNER") + .replaceAll("LEFT", "\n LEFT") + .replaceAll("RIGHT", "\n RIGHT") + .replaceAll("WHERE", "\nWHERE\n "); + } + if(System.getProperty("qqq.rdbms.logSQL.output", "logger").equalsIgnoreCase("system.out")) { System.out.println("SQL: " + sql);