Index: branches/version-2_11-dev/html/handle_error.php
===================================================================
--- branches/version-2_11-dev/html/handle_error.php	(revision 21264)
+++ branches/version-2_11-dev/html/handle_error.php	(revision 21384)
@@ -24,6 +24,16 @@
 ob_start('_fatal_error_handler');
 
+// E_DEPRECATED 定数 (for PHP < 5.3)
+// TODO バージョン互換処理に統合したい。
+if (!defined('E_DEPRECATED')) {
+    define('E_DEPRECATED', 8192);
+}
+
+// エラーレベル設定
+// 開発時は E_ALL を推奨
+error_reporting(E_ALL & ~E_NOTICE & ~E_USER_NOTICE & ~E_DEPRECATED);
+
 // E_USER_ERROR を捕捉した場合にエラー画面を表示させるためのエラーハンドラ
-set_error_handler('handle_error');
+set_error_handler('handle_error', error_reporting());
 
 /**
@@ -63,6 +73,6 @@
  * trigger_error にて E_USER_ERROR が生成されると, エラーログを出力した後,
  * エラー画面を表示させる.
- *
- * E_USER_ERROR 以外のエラーが生成された場合, この関数は true を返す.
+ * E_WARNING, E_USER_WARNING が発生した場合、ログを記録して、true を返す。
+ * (エラー画面・エラー文言は表示させない。)
  *
  * @param integer $errno エラーコード
@@ -71,21 +81,30 @@
  * @param integer $errline エラーが発生した行番号
  * @return void|boolean E_USER_ERROR が発生した場合は, エラーページへリダイレクト;
- *                      E_USER_ERROR 以外の場合は true
+ *                      E_WARNING, E_USER_WARNING が発生した場合、true を返す
  */
 function handle_error($errno, $errstr, $errfile, $errline) {
+
+    // error_reporting 設定に含まれていないエラーコードは処理しない
+    if (!(error_reporting() & $errno)) {
+        return;
+    }
+
     $now = date("Y/m/d H:i:s");
     switch ($errno) {
-    case E_USER_ERROR:
-        error_log($now . " [$errfile] FATAL Error($errno) $errfile:$errline $errstr from ". $_SERVER['REMOTE_ADDR'] . "\n", 3, realpath(dirname(__FILE__) . "/" . HTML2DATA_DIR . "logs/site.log"));
+        case E_USER_ERROR:
+            error_log($now . " [$errfile] FATAL Error($errno) $errfile:$errline $errstr from ". $_SERVER['REMOTE_ADDR'] . "\n", 3, realpath(dirname(__FILE__) . "/" . HTML2DATA_DIR . "logs/site.log"));
 
-        displaySystemError($errstr);
-        exit(1);
-        break;
+            displaySystemError($errstr);
+            exit(1);
+            break;
 
-    case E_USER_WARNING:
-    case E_USER_NOTICE:
-    default:
+        case E_WARNING:
+        case E_USER_WARNING:
+            error_log($now . " [$errfile] WARNING($errno) $errfile:$errline $errstr from ". $_SERVER['REMOTE_ADDR'] . "\n", 3, realpath(dirname(__FILE__) . "/" . HTML2DATA_DIR . "logs/site.log"));
+            return true;
+            break;
+
+        default:
     }
-    return true;
 }
 
