]> git.donarmstrong.com Git - roundcube.git/blobdiff - program/include/bugs.inc
Imported Debian patch 0.2.2-1
[roundcube.git] / program / include / bugs.inc
index 4a3cdec73b14b8e3abe46dc4dc5016aaf2b011ff..e5dcf42236b4771d79969f3608770f704f72331a 100644 (file)
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: bugs.inc 666 2007-08-07 21:02:12Z thomasb $
+ $Id: bugs.inc 2025 2008-10-30 09:15:01Z alec $
 
 */
 
@@ -66,26 +66,32 @@ function raise_error($arg=array(), $log=false, $terminate=false)
  */
 function log_bug($arg_arr)
 {
-  global $CONFIG, $INSTALL_PATH;
-  $program = $arg_arr['type']=='xpath' ? 'XPath' : strtoupper($arg_arr['type']);
+  global $CONFIG;
+  $program = strtoupper($arg_arr['type']);
 
   // write error to local log file
   if ($CONFIG['debug_level'] & 1)
   {
-    $log_entry = sprintf(
-      "[%s] %s Error: %s in %s on line %d\n",
+    $post_query = ($_SERVER['REQUEST_METHOD'] == 'POST' ? '?_task='.urlencode($_POST['_task']).'&_action='.urlencode($_POST['_action']) : '');
+    $log_entry = sprintf("[%s] %s Error: %s%s (%s %s)\n",
       date("d-M-Y H:i:s O", mktime()),
       $program,
       $arg_arr['message'],
-      $arg_arr['file'],
-      $arg_arr['line']);
-                 
+      $arg_arr['file'] ? sprintf(' in %s on line %d', $arg_arr['file'], $arg_arr['line']) : '',
+      $_SERVER['REQUEST_METHOD'],
+      $_SERVER['REQUEST_URI'] . $post_query);
+      
     if (empty($CONFIG['log_dir']))
-      $CONFIG['log_dir'] = $INSTALL_PATH.'logs';
+      $CONFIG['log_dir'] = INSTALL_PATH.'logs';
       
     // try to open specific log file for writing
-    if ($fp = @fopen($CONFIG['log_dir'].'/errors', 'a'))
+    if ($CONFIG['log_driver'] == 'syslog')
+    {
+      syslog(LOG_ERR, $log_entry);
+    }
+    else if ($fp = @fopen($CONFIG['log_dir'].'/errors', 'a'))
     {
+      // log_driver == 'file' is the default, assumed here.
       fwrite($fp, $log_entry);
       fclose($fp);
     }