From 87ed97d3a38911afa83073f50706855561bb0253 Mon Sep 17 00:00:00 2001 From: michi Date: Fri, 23 Nov 2007 17:13:32 +0000 Subject: [PATCH] if logSQL=true then we will also log queries, that are submitted via helma.Database to the sql-log-file; see http://www.nabble.com/logSQL-with-helma.Database-t4804158s2589.html --- helma/Database.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/helma/Database.js b/helma/Database.js index 0ac0f305..304744b5 100644 --- a/helma/Database.js +++ b/helma/Database.js @@ -107,6 +107,8 @@ helma.Database = function(source) { * @return {Array} an Array containing the result set */ this.query = function(sql) { + var isLogSqlEnabled = (getProperty("logSQL", "false").toLowerCase() == "true"); + var logTimeStart = isLogSqlEnabled ? java.lang.System.currentTimeMillis() : 0; connection.setReadOnly(true); var statement = connection.createStatement(); var resultSet = statement.executeQuery(sql); @@ -169,6 +171,11 @@ helma.Database = function(source) { } catch (error) { // ignore } + var logTimeStop = isLogSqlEnabled ? java.lang.System.currentTimeMillis() : 0; + if (isLogSqlEnabled) { + var tableName = metaData.getColumnCount() > 0 ? metaData.getTableName(1) : null; + app.getLogger("helma." + app.name + ".sql").info("SQL DIRECT_QUERY " + (tableName || "-") + " " + (logTimeStop - logTimeStart) + ": " + sql); + } return result; }; @@ -182,10 +189,13 @@ helma.Database = function(source) { * DELETE statements, or 0 for SQL statements that return nothing */ this.execute = function(sql) { + var isLogSqlEnabled = (getProperty("logSQL", "false").toLowerCase() == "true"); + var logTimeStart = isLogSqlEnabled ? java.lang.System.currentTimeMillis() : 0; connection.setReadOnly(false); var statement = connection.createStatement(); + var result; try { - return statement.executeUpdate(sql); + result = statement.executeUpdate(sql); } finally { try { statement.close(); @@ -193,6 +203,11 @@ helma.Database = function(source) { // ignore } } + var logTimeStop = isLogSqlEnabled ? java.lang.System.currentTimeMillis() : 0; + if (isLogSqlEnabled) { + app.getLogger("helma." + app.name + ".sql").info("SQL DIRECT_EXECUTE - " + (logTimeStop - logTimeStart) + ": " + sql); + } + return result; }; /**