From 0a781ed07ee4bc6f3e567c3fc50cb9129c6e766f Mon Sep 17 00:00:00 2001 From: "Paula V. Quispe" Date: Wed, 9 Nov 2016 17:15:18 -0500 Subject: [PATCH] HOR-2195 . --- gulliver/system/class.bootstrap.php | 15 +++++++++++++++ workflow/engine/classes/class.pmDynaform.php | 11 +++++++++++ workflow/engine/classes/class.pmFunctions.php | 11 +++++++++++ .../src/ProcessMaker/BusinessModel/Variable.php | 10 ++++++++++ 4 files changed, 47 insertions(+) diff --git a/gulliver/system/class.bootstrap.php b/gulliver/system/class.bootstrap.php index 417fcea00..88a7c400a 100644 --- a/gulliver/system/class.bootstrap.php +++ b/gulliver/system/class.bootstrap.php @@ -3035,5 +3035,20 @@ class Bootstrap $registerLogger = &MonologProvider::getSingleton($channel, $fileLog); $registerLogger->addLog($level, $message, $context); } + /** + * Get the default information from the context + * + * @return array $aContext void + */ + public static function getDefaultContextLog(){ + $sysSys = (defined("SYS_SYS"))? SYS_SYS : "Undefined"; + $date = \ProcessMaker\Util\DateTime::convertUtcToTimeZone(date('Y-m-d H:m:s')); + $aContext = array( + 'ip' => \G::getIpAddress() + ,'timeZone' => $date + ,'workspace' => $sysSys + ); + return $aContext; + } } diff --git a/workflow/engine/classes/class.pmDynaform.php b/workflow/engine/classes/class.pmDynaform.php index 5383c4926..813c7aab1 100644 --- a/workflow/engine/classes/class.pmDynaform.php +++ b/workflow/engine/classes/class.pmDynaform.php @@ -165,6 +165,9 @@ class pmDynaform public function jsonr(&$json) { + $sysSys = (defined("SYS_SYS"))? SYS_SYS : "Undefined"; + $aContext = \Bootstrap::getDefaultContextLog(); + if (empty($json)) { return; } @@ -238,6 +241,10 @@ class pmDynaform $stmt = $cnn->createStatement(); $sql = G::replaceDataField($json->sql, $this->getValuesDependentFields($json)); $rs = $stmt->executeQuery($sql, \ResultSet::FETCHMODE_NUM); + //Logger + $aContext['action'] = 'execute-sql'; + $aContext['sql'] = $sql; + \Bootstrap::registerMonolog('sqlExecution', 200, 'Sql Execution', $aContext, $sysSys, 'processmaker.log'); while ($rs->next()) { $row = $rs->getRow(); $option = new stdClass(); @@ -246,6 +253,10 @@ class pmDynaform $json->optionsSql[] = $option; } } catch (Exception $e) { + //Logger + $aContext['action'] = 'execute-sql'; + $aContext['exception'] = (array)$e; + \Bootstrap::registerMonolog('sqlExecution', 400, 'Sql Execution', $aContext, $sysSys, 'processmaker.log'); } } diff --git a/workflow/engine/classes/class.pmFunctions.php b/workflow/engine/classes/class.pmFunctions.php index c4ffb7dfb..c3c666835 100644 --- a/workflow/engine/classes/class.pmFunctions.php +++ b/workflow/engine/classes/class.pmFunctions.php @@ -240,6 +240,8 @@ function literalDate ($date, $lang = 'en') */ function executeQuery ($SqlStatement, $DBConnectionUID = 'workflow', $aParameter = array()) { + $sysSys = (defined("SYS_SYS"))? SYS_SYS : "Undefined"; + $aContext = \Bootstrap::getDefaultContextLog(); $con = Propel::getConnection( $DBConnectionUID ); $con->begin(); G::loadClass('system'); @@ -342,9 +344,18 @@ function executeQuery ($SqlStatement, $DBConnectionUID = 'workflow', $aParameter $result = executeQueryOci($SqlStatement, $con, $aParameter); } } + //Logger + $aContext['action'] = 'execute-query'; + $aContext['sql'] = $SqlStatement; + \Bootstrap::registerMonolog('sqlExecution', 200, 'Sql Execution', $aContext, $sysSys, 'processmaker.log'); return $result; } catch (SQLException $sqle) { + //Logger + $aContext['action'] = 'execute-query'; + $aContext['exception'] = (array)$sqle; + \Bootstrap::registerMonolog('sqlExecution', 400, 'Sql Execution', $aContext, $sysSys, 'processmaker.log'); + if (isset($sqle->xdebug_message)) { error_log(print_r($sqle->xdebug_message, true)); } else { diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Variable.php b/workflow/engine/src/ProcessMaker/BusinessModel/Variable.php index 7eb6c616d..245fe8e42 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Variable.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Variable.php @@ -711,6 +711,8 @@ class Variable { try { $arrayRecord = array(); + $sysSys = (defined("SYS_SYS"))? SYS_SYS : "Undefined"; + $aContext = \Bootstrap::getDefaultContextLog(); //Verify data $process = new \ProcessMaker\BusinessModel\Process(); @@ -791,6 +793,10 @@ class Variable ); $rs = $stmt->executeQuery($replaceFields, \ResultSet::FETCHMODE_NUM); + //Logger + $aContext['action'] = 'execute-sql-suggest'; + $aContext['sql'] = $replaceFields; + \Bootstrap::registerMonolog('sqlExecution', 200, 'Sql Execution', $aContext, $sysSys, 'processmaker.log'); while ($rs->next()) { $row = $rs->getRow(); @@ -805,6 +811,10 @@ class Variable //Return return $arrayRecord; } catch (\Exception $e) { + //Logger + $aContext['action'] = 'execute-sql-suggest'; + $aContext['exception'] = (array)$e; + \Bootstrap::registerMonolog('sqlExecution', 400, 'Sql Execution', $aContext, $sysSys, 'processmaker.log'); throw $e; } }