CRM-13640: Improve hash generator for logfile.
authorChris Burgess <chris@fuzion.co.nz>
Mon, 6 Jun 2016 15:20:38 +0000 (15:20 +0000)
committerChris Burgess <chris@fuzion.co.nz>
Mon, 6 Jun 2016 15:20:38 +0000 (15:20 +0000)
CRM/Core/Error.php

index 7d488ee9078d8a001319b5de69ca5eddea6a85f9..cc938288bc7522af953527d723c99e307f0578a2 100644 (file)
@@ -646,6 +646,18 @@ class CRM_Core_Error extends PEAR_ErrorStack {
     return Log::singleton('file', \Civi::$statics[__CLASS__]['logger_file' . $prefix], '');
   }
 
+  /**
+   * Generate a hash for the logfile.
+   * CRM-13640.
+   */
+  protected static function generateLogFileHash($config) {
+    $md5inputs = array(
+      md5($config->dsn),
+      $config->dsn,
+    );
+    return md5(var_export($md5inputs,1));
+  }
+
   /**
    * Generate the name of the logfile to use and store it as a static.
    *
@@ -659,7 +671,8 @@ class CRM_Core_Error extends PEAR_ErrorStack {
 
       $prefixString = $prefix ? ($prefix . '.') : '';
 
-      $fileName = $config->configAndLogDir . 'CiviCRM.' . $prefixString . md5($config->dsn) . '.log';
+      $hash = self::generateLogFileHash($config);
+      $fileName = $config->configAndLogDir . 'CiviCRM.' . $prefixString . $hash . '.log';
 
       // Roll log file monthly or if greater than 256M
       // note that PHP file functions have a limit of 2G and hence