From 186938dac6d2be1c69ed114ece0b37565769d49f Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Fri, 24 Jul 2009 04:49:53 -0400
Subject: [PATCH] Use write_log() to log bugs. This will also trigger the write_log plugin hook as requested in #1485998

---
 program/include/main.inc |    3 +++
 program/include/bugs.inc |   28 +++++-----------------------
 2 files changed, 8 insertions(+), 23 deletions(-)

diff --git a/program/include/bugs.inc b/program/include/bugs.inc
index c5dac1e..1031bdb 100644
--- a/program/include/bugs.inc
+++ b/program/include/bugs.inc
@@ -5,7 +5,7 @@
  | program/include/bugs.inc                                              |
  |                                                                       |
  | This file is part of the RoudCube Webmail client                      |
- | Copyright (C) 2005-2007, RoudCube Dev - Switzerland                   |
+ | Copyright (C) 2005-2009, RoudCube Dev - Switzerland                   |
  | Licensed under the GNU GPL                                            |
  |                                                                       |
  | PURPOSE:                                                              |
@@ -69,38 +69,20 @@
   global $CONFIG;
   $program = strtoupper($arg_arr['type']);
 
-  if (empty($CONFIG['log_date_format']))
-    $CONFIG['log_date_format'] = 'd-M-Y H:i:s O';
-
   // write error to local log file
   if ($CONFIG['debug_level'] & 1)
   {
     $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($CONFIG['log_date_format']),
+    $log_entry = sprintf("%s Error: %s%s (%s %s)\n",
       $program,
       $arg_arr['message'],
       $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';
-      
-    // try to open specific log file for writing
-    if ($CONFIG['log_driver'] == 'syslog')
+    
+    if (!write_log('errors', $log_entry))
     {
-      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);
-    }
-    else
-    {
-      // send error to PHPs error handler
+      // send error to PHPs error handler if write_log didn't succeed
       trigger_error($arg_arr['message']);
     }
   }
diff --git a/program/include/main.inc b/program/include/main.inc
index ba2f690..09b8c78 100644
--- a/program/include/main.inc
+++ b/program/include/main.inc
@@ -1012,6 +1012,7 @@
   if ($CONFIG['log_driver'] == 'syslog') {
     $prio = $name == 'errors' ? LOG_ERR : LOG_INFO;
     syslog($prio, $log_entry);
+    return true;
   }
   else {
     // log_driver == 'file' is assumed here
@@ -1023,8 +1024,10 @@
       fwrite($fp, $log_entry);
       fflush($fp);
       fclose($fp);
+      return true;
     }
   }
+  return false;
 }
 
 

--
Gitblit v1.9.1