Index: branches/version-2_5-dev/html/handle_error.php
===================================================================
--- branches/version-2_5-dev/html/handle_error.php	(revision 18743)
+++ branches/version-2_5-dev/html/handle_error.php	(revision 18796)
@@ -74,5 +74,5 @@
     case E_USER_ERROR:
         ob_end_clean();
-        error_log("FATAL Error($errno) $errfile:$errline $errstr");
+        error_log("FATAL Error($errno) $errfile:$errline $errstr", 3, LOG_PATH);
 
         $admin = "";
Index: branches/version-2_5-dev/data/class/SC_Query.php
===================================================================
--- branches/version-2_5-dev/data/class/SC_Query.php	(revision 18790)
+++ branches/version-2_5-dev/data/class/SC_Query.php	(revision 18796)
@@ -49,5 +49,5 @@
      * @param boolean $new 新規に接続を行うかどうか
      */
-    function SC_Query($dsn = "", $force_run = true, $new = false) {
+    function SC_Query($dsn = "", $force_run = false, $new = false) {
 
         if ($dsn == "") {
@@ -754,5 +754,7 @@
         if (PEAR::isError($sth)) {
             if (!$this->force_run) {
-               trigger_error($sth->getMessage(), E_USER_ERROR);
+                trigger_error($this->traceError($sth, $sql), E_USER_ERROR);
+            } else {
+                error_log($this->traceError($sth, $sql), 3, LOG_PATH);
             }
         }
@@ -772,9 +774,48 @@
         if (PEAR::isError($affected)) {
             if (!$this->force_run) {
-               trigger_error($affected->getMessage(), E_USER_ERROR);
+                trigger_error($this->traceError($affected), E_USER_ERROR);
+            } else {
+                error_log($this->traceError($affected), 3, LOG_PATH);
             }
         }
         return $affected;
     }
+
+    /**
+     * エラーの内容をトレースする.
+     *
+     * @access private
+     * @param PEAR::Error $error PEAR::Error インスタンス
+     * @param string $sql エラーの発生した SQL 文
+     * @return string トレースしたエラー文字列
+     */
+    function traceError($error, $sql = "") {
+        $scheme = '';
+        if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') {
+            $scheme = "http://";
+        } else {
+            $scheme = "https://";
+        }
+
+        $err = $scheme . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . "\n\n"
+            . "SERVER_ADDR: " . $_SERVER['SERVER_ADDR'] . "\n"
+            . "REMOTE_ADDR: " . $_SERVER['REMOTE_ADDR'] . "\n"
+            . "USER_AGENT: " . $_SERVER['HTTP_USER_AGENT'] . "\n\n"
+            . "SQL: " . $sql . "\n\n"
+            . $error->getMessage() . "\n\n"
+            . $error->getUserInfo() . "\n\n";
+
+        $rev = array_reverse($error->getBackTrace());
+
+        foreach($rev as $val) {
+            if($val['class'] != "") {
+                $detail = $val['class'] . "->" . $val['function'];
+            } else {
+                $detail = $val['function'];
+            }
+            $err .= $val['file'] . " " . $val['line'] . ":" . $detail . "\n";
+        }
+        return $err;
+    }
 }
 
