From ca3e4d180c4d8d5587c1b82531bda158e76ccaa4 Mon Sep 17 00:00:00 2001
From: mathias <germannewsmaker@gmail.com>
Date: Thu, 19 Aug 2021 12:23:58 +0200
Subject: [PATCH] Removed the old log manager & integrated the new log manager

---
 .../SQLToolkit/drivers/MySQLConnection.java   | 57 +++++-------
 .../SQLToolkit/drivers/SqlLogManager.java     | 87 -------------------
 .../SQLToolkit/manager/DataBaseSelection.java |  6 +-
 .../SQLToolkit/manager/ResultManager.java     | 30 +++----
 .../SQLToolkit/manager/UpdateManager.java     |  9 +-
 5 files changed, 46 insertions(+), 143 deletions(-)
 delete mode 100755 src/main/java/de/gnmyt/SQLToolkit/drivers/SqlLogManager.java

diff --git a/src/main/java/de/gnmyt/SQLToolkit/drivers/MySQLConnection.java b/src/main/java/de/gnmyt/SQLToolkit/drivers/MySQLConnection.java
index 0dabe7d..8c0dcd8 100755
--- a/src/main/java/de/gnmyt/SQLToolkit/drivers/MySQLConnection.java
+++ b/src/main/java/de/gnmyt/SQLToolkit/drivers/MySQLConnection.java
@@ -7,6 +7,8 @@ import de.gnmyt.SQLToolkit.manager.ResultManager;
 import de.gnmyt.SQLToolkit.manager.UpdateManager;
 import de.gnmyt.SQLToolkit.types.LogLevelType;
 import de.gnmyt.SQLToolkit.types.LoginParam;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.sql.Connection;
 import java.sql.DriverManager;
@@ -15,15 +17,17 @@ import java.sql.ResultSet;
 
 public class MySQLConnection {
 
+    public static final Logger LOG = LoggerFactory.getLogger("MySQL-Logger");
+
     private final String hostname;
     private final String username;
     private final String password;
     private final String database;
+
     private String tablePrefix = "";
     private String tablePrefixVariable = "";
     private String connectString = "";
     private Connection con;
-    private final SqlLogManager sqlLogManager;
 
     /**
      * Update the Connection String
@@ -85,14 +89,6 @@ public class MySQLConnection {
         return (con != null);
     }
 
-    /**
-     * Get the SQL Log Manager and adjust it how you like it
-     * @return the SQL Log Manager
-     */
-    public SqlLogManager getLogManager() {
-        return sqlLogManager;
-    }
-
     /**
      * Basic constructor for the Connection
      * @param hostname MySQL server hostname
@@ -107,9 +103,7 @@ public class MySQLConnection {
         this.username = username;
         this.password = password;
         this.database = database;
-        this.sqlLogManager = new SqlLogManager();
         updateConnectString(loginParams);
-        setLogLevelType(logLevel);
     }
 
     /**
@@ -125,19 +119,7 @@ public class MySQLConnection {
         this.username = username;
         this.password = password;
         this.database = database;
-        this.sqlLogManager = new SqlLogManager();
         updateConnectString(loginParams);
-        setLogLevelType(LogLevelType.NONE);
-    }
-
-    /**
-     * Set a new logging level
-     * @param logLevelType New logging level
-     * @return this class
-     */
-    public MySQLConnection setLogLevelType(LogLevelType logLevelType) {
-        this.sqlLogManager.setLogLevelType(logLevelType);
-        return this;
     }
 
     /**
@@ -153,7 +135,7 @@ public class MySQLConnection {
             for (Object current : params) { ps.setObject(start, current);start++; }
             return ps.executeQuery();
         } catch (Exception err) {
-            sqlLogManager.sendError(err.getMessage());
+            LOG.error(err.getMessage());
         }
         return null;
     }
@@ -165,7 +147,7 @@ public class MySQLConnection {
      * @return ResultManager
      */
     public ResultManager getResult(String query, Object... params) {
-        return new ResultManager(getResultSet(query, params), sqlLogManager);
+        return new ResultManager(getResultSet(query, params));
     }
 
     /**
@@ -255,18 +237,19 @@ public class MySQLConnection {
      */
     public MySQLConnection connect() {
         if (!isConnected()) { try {
-            sqlLogManager.sendInfo("Connecting to " + hostname + " with user " + username + " to database " + database);
+            LOG.info("Connecting to " + hostname + " with user " + username + " to database " + database);
                 Class.forName("com.mysql.cj.jdbc.Driver");
                 con = DriverManager.getConnection("jdbc:mysql://" + hostname + "/" + database + connectString, username, password);
-                sqlLogManager.sendInfo("Connection established");
+                LOG.info("Connection established");
             } catch (Exception exception) {
                 if (exception.getMessage().contains("jdbc.Driver"))
-                    sqlLogManager.sendError("MySQL driver not found! Check your dependencies or install the JDBC Mysql Driver from https://dev.mysql.com/downloads/file/?id=498587");
-                 else if (exception.getMessage().contains("has not received any packets")) sqlLogManager.sendError("No packets received from the server.");
-                 else if (exception.getMessage().contains("denied for user")) sqlLogManager.sendError("Wrong username/password");
-                 else sqlLogManager.sendError(exception.getMessage());
+                    LOG.error("MySQL driver not found! Check your dependencies or install the JDBC Mysql Driver from https://dev.mysql.com/downloads/file/?id=498587");
+                 else if (exception.getMessage().contains("has not received any packets"))
+                     LOG.error("No packets received from the server.");
+                 else if (exception.getMessage().contains("denied for user")) LOG.error("Wrong username/password");
+                 else LOG.error(exception.getMessage());
             }
-        } else sqlLogManager.sendWarning("Already connected");
+        } else LOG.warn("Already connected");
         return this;
     }
 
@@ -275,9 +258,13 @@ public class MySQLConnection {
      * @return this class
      */
     public MySQLConnection disconnect() {
-        if (isConnected()) { try { con.close();con = null;sqlLogManager.sendInfo("Connection closed");
-        } catch (Exception err) { sqlLogManager.sendError(err.getMessage()); }
-        } else sqlLogManager.sendWarning("Not connected. Please connect first");
+        if (isConnected()) {
+            try {
+                con.close();
+                con = null;
+                LOG.info("Connection closed");
+        } catch (Exception err) { LOG.error(err.getMessage()); }
+        } else LOG.warn("Not connected. Please connect first");
         return this;
     }
 
diff --git a/src/main/java/de/gnmyt/SQLToolkit/drivers/SqlLogManager.java b/src/main/java/de/gnmyt/SQLToolkit/drivers/SqlLogManager.java
deleted file mode 100755
index d79f7a9..0000000
--- a/src/main/java/de/gnmyt/SQLToolkit/drivers/SqlLogManager.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package de.gnmyt.SQLToolkit.drivers;
-
-import de.gnmyt.SQLToolkit.types.LogLevelType;
-
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-
-public class SqlLogManager {
-
-    private LogLevelType logLevelType;
-    private String logFormat = "[%date ยป MySQL %type] %msg";
-
-    /**
-     * Sets the Log Level
-     * @param logLevelType Logging Level
-     */
-    public void setLogLevelType(LogLevelType logLevelType) {
-        this.logLevelType = logLevelType;
-    }
-
-    /**
-     * Format for the Message
-     * @param logFormat The Formatted String
-     */
-    public void setLogFormat(String logFormat) {
-        this.logFormat = logFormat;
-    }
-
-    /**
-     * Getting the Logging Level
-     * @return LogLevelType
-     */
-    public LogLevelType getLogLevelType() {
-        return logLevelType;
-    }
-
-    /**
-     * Send an information
-     * @param msg The provided message
-     */
-    public void sendInfo(String msg) {
-        if (logLevelType == LogLevelType.ALL)
-            sendLog("Info", msg);
-    }
-
-    /**
-     * Send an Warning
-     * @param msg The provided message
-     */
-    public void sendWarning(String msg) {
-        if (logLevelType == LogLevelType.ALL || logLevelType == LogLevelType.LOW)
-            sendLog("Warning", msg);
-    }
-
-    /**
-     * Send an Error
-     * @param msg The provided message
-     */
-    public void sendError(String msg) {
-        if (logLevelType == LogLevelType.ALL || logLevelType == LogLevelType.LOW) {
-            StackTraceElement[] st = Thread.currentThread().getStackTrace();
-            StackTraceElement stack = st[st.length-1];
-            sendLog("Error", "<"+stack.getFileName()+":"+stack.getLineNumber()+"> "+msg);
-        }
-    }
-
-    /**
-     * Intern Logging Feature
-     * @param prefix Logging Prefix
-     * @param msg The provided message
-     */
-    private void sendLog(String prefix, String msg) {
-        String formatted = logFormat.replace("%type", prefix).replace("%date", getDate()).replace("%msg", msg);
-        System.out.println(formatted);
-    }
-
-    /**
-     * Getting the date
-     * @return Datetime
-     */
-    private String getDate() {
-        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("H:m:s");
-        LocalDateTime dt = LocalDateTime.now();
-        return dtf.format(dt);
-    }
-
-}
diff --git a/src/main/java/de/gnmyt/SQLToolkit/manager/DataBaseSelection.java b/src/main/java/de/gnmyt/SQLToolkit/manager/DataBaseSelection.java
index 214a0e1..973fcca 100644
--- a/src/main/java/de/gnmyt/SQLToolkit/manager/DataBaseSelection.java
+++ b/src/main/java/de/gnmyt/SQLToolkit/manager/DataBaseSelection.java
@@ -1,6 +1,7 @@
 package de.gnmyt.SQLToolkit.manager;
 
 import de.gnmyt.SQLToolkit.drivers.MySQLConnection;
+import org.slf4j.Logger;
 
 import java.sql.ResultSet;
 import java.util.ArrayList;
@@ -10,6 +11,8 @@ import java.util.concurrent.atomic.AtomicBoolean;
 
 public class DataBaseSelection {
 
+    private final Logger LOG = MySQLConnection.LOG;
+
     private final MySQLConnection connection;
     private final HashMap<String, Object> whereList;
     private final ArrayList<Object> databaseParameters;
@@ -121,8 +124,7 @@ public class DataBaseSelection {
         getTempParams().forEach(v -> { messageBuilder.append((added.get()) ? ", " : "").append(v);added.set(true); });
         StackTraceElement[] st = Thread.currentThread().getStackTrace();
         StackTraceElement stack = st[st.length-1];
-        connection.getLogManager()
-                .sendInfo("DEBUG <" + stack.getFileName()+":"+stack.getLineNumber()  + "> Statement: " + messageBuilder.toString());
+        LOG.debug("DEBUG <" + stack.getFileName()+":"+stack.getLineNumber()  + "> Statement: " + messageBuilder.toString());
         return this;
     }
 
diff --git a/src/main/java/de/gnmyt/SQLToolkit/manager/ResultManager.java b/src/main/java/de/gnmyt/SQLToolkit/manager/ResultManager.java
index ba24602..7e826af 100644
--- a/src/main/java/de/gnmyt/SQLToolkit/manager/ResultManager.java
+++ b/src/main/java/de/gnmyt/SQLToolkit/manager/ResultManager.java
@@ -1,6 +1,7 @@
 package de.gnmyt.SQLToolkit.manager;
 
-import de.gnmyt.SQLToolkit.drivers.SqlLogManager;
+import de.gnmyt.SQLToolkit.drivers.MySQLConnection;
+import org.slf4j.Logger;
 
 import java.sql.ResultSet;
 import java.sql.Timestamp;
@@ -9,17 +10,16 @@ import java.util.HashMap;
 
 public class ResultManager {
 
-    private ResultSet resultSet;
-    private SqlLogManager logManager;
+    private final Logger LOG = MySQLConnection.LOG;
+
+    private final ResultSet resultSet;
 
     /**
      * Basic constructor for the ResultManager
      * @param resultSet Existing ResultSet
-     * @param logManager Existing LogManager
      */
-    public ResultManager(ResultSet resultSet, SqlLogManager logManager) {
+    public ResultManager(ResultSet resultSet) {
         this.resultSet = resultSet;
-        this.logManager = logManager;
     }
 
     /**
@@ -37,7 +37,7 @@ public class ResultManager {
      */
     public Object getObject(String column) {
         try { while (resultSet.next()) { return resultSet.getObject(column); }
-        } catch (Exception err) { logManager.sendError(err.getMessage()); }
+        } catch (Exception err) { LOG.error(err.getMessage()); }
         return null;
     }
 
@@ -48,7 +48,7 @@ public class ResultManager {
      */
     public String getString(String column) {
         try { while (resultSet.next()) { return resultSet.getString(column); }
-        } catch (Exception err) { logManager.sendError(err.getMessage()); }
+        } catch (Exception err) { LOG.error(err.getMessage()); }
         return "";
     }
 
@@ -59,7 +59,7 @@ public class ResultManager {
      */
     public Integer getInteger(String column) {
         try { while (resultSet.next()) { return resultSet.getInt(column); }
-        } catch (Exception err) { logManager.sendError(err.getMessage()); }
+        } catch (Exception err) { LOG.error(err.getMessage()); }
         return 0;
     }
 
@@ -70,13 +70,13 @@ public class ResultManager {
      */
     public Boolean getBoolean(String column) {
         try { while (resultSet.next()) { return resultSet.getBoolean(column); }
-        } catch (Exception err) { logManager.sendError(err.getMessage()); }
+        } catch (Exception err) { LOG.error(err.getMessage()); }
         return false;
     }
 
     public Timestamp getTimestamp(String column) {
         try { while (resultSet.next()) { return resultSet.getTimestamp(column); }
-        } catch (Exception err) { logManager.sendError(err.getMessage()); }
+        } catch (Exception err) { LOG.error(err.getMessage()); }
         return null;
     }
 
@@ -86,7 +86,7 @@ public class ResultManager {
      */
     public Integer getRowCount() {
         int count=0;
-        try { while (resultSet.next()) { count++; } } catch (Exception err) { logManager.sendError(err.getMessage()); }
+        try { while (resultSet.next()) { count++; } } catch (Exception err) { LOG.error(err.getMessage()); }
         return count;
     }
 
@@ -98,7 +98,7 @@ public class ResultManager {
     public ArrayList<String> getList(String column) {
         ArrayList<String> results = new ArrayList<>();
         try { while (resultSet.next()) { results.add(resultSet.getString(column)); }
-        } catch (Exception err) { logManager.sendError(err.getMessage()); }
+        } catch (Exception err) { LOG.error(err.getMessage()); }
         return results;
     }
 
@@ -112,7 +112,7 @@ public class ResultManager {
         HashMap<String, String> results = new HashMap<>();
         try { while (resultSet.next()) {
             results.put(resultSet.getString(column), resultSet.getString(column2)); }
-        } catch (Exception err) { logManager.sendError(err.getMessage()); }
+        } catch (Exception err) { LOG.error(err.getMessage()); }
         return results;
     }
 
@@ -131,7 +131,7 @@ public class ResultManager {
                 }
                 results.add(result);
             }
-        } catch (Exception err) { logManager.sendError(err.getMessage()); }
+        } catch (Exception err) { LOG.error(err.getMessage()); }
         return results;
     }
 
diff --git a/src/main/java/de/gnmyt/SQLToolkit/manager/UpdateManager.java b/src/main/java/de/gnmyt/SQLToolkit/manager/UpdateManager.java
index 3e8cea9..54299e4 100644
--- a/src/main/java/de/gnmyt/SQLToolkit/manager/UpdateManager.java
+++ b/src/main/java/de/gnmyt/SQLToolkit/manager/UpdateManager.java
@@ -2,6 +2,7 @@ package de.gnmyt.SQLToolkit.manager;
 
 import de.gnmyt.SQLToolkit.drivers.MySQLConnection;
 import de.gnmyt.SQLToolkit.generator.TableGenerator;
+import org.slf4j.Logger;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -9,6 +10,8 @@ import java.util.concurrent.atomic.AtomicBoolean;
 
 public class UpdateManager {
 
+    private final Logger LOG = MySQLConnection.LOG;
+
     private MySQLConnection connection;
     private String tableName;
     private HashMap<String, Object> whereList;
@@ -67,8 +70,7 @@ public class UpdateManager {
         whereList.values().forEach(v -> { messageBuilder.append((added.get()) ? ", " : "").append(v);added.set(true); });
         StackTraceElement[] st = Thread.currentThread().getStackTrace();
         StackTraceElement stack = st[st.length-1];
-        connection.getLogManager()
-                .sendInfo("DEBUG <" + stack.getFileName()+":"+stack.getLineNumber()  + "> Statement: " + messageBuilder.toString());
+        LOG.debug("DEBUG <" + stack.getFileName()+":"+stack.getLineNumber()  + "> Statement: " + messageBuilder.toString());
         return this;
     }
 
@@ -84,8 +86,7 @@ public class UpdateManager {
         getTempParams().forEach(v -> { messageBuilder.append((added.get()) ? ", " : "").append(v);added.set(true); });
         StackTraceElement[] st = Thread.currentThread().getStackTrace();
         StackTraceElement stack = st[st.length-1];
-        connection.getLogManager()
-                .sendInfo("DEBUG <" + stack.getFileName()+":"+stack.getLineNumber()  + "> Statement: " + messageBuilder.toString());
+        LOG.debug("DEBUG <" + stack.getFileName()+":"+stack.getLineNumber()  + "> Statement: " + messageBuilder.toString());
         return this;
     }