summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorVictor Dubiniuk <victor.dubiniuk@gmail.com>2012-09-12 22:30:04 +0300
committerVictor Dubiniuk <victor.dubiniuk@gmail.com>2012-09-12 22:30:04 +0300
commitbbf8bb0bb3f33c92933dfd499b571f56edda4a59 (patch)
treebfc30116008e9de88ea6c9b4d667d86c1938a20f /lib
parent9bfdf47cd43139ca5c3fba255fd4486d06b6d72c (diff)
downloadnextcloud-server-bbf8bb0bb3f33c92933dfd499b571f56edda4a59.tar.gz
nextcloud-server-bbf8bb0bb3f33c92933dfd499b571f56edda4a59.zip
Log PHP errors to the OC log
Diffstat (limited to 'lib')
-rw-r--r--lib/base.php3
-rw-r--r--lib/log.php17
2 files changed, 20 insertions, 0 deletions
diff --git a/lib/base.php b/lib/base.php
index 6b4dd789b2f..4ff5a43bd24 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -317,6 +317,9 @@ class OC{
self::initPaths();
+ register_shutdown_function(array('OC_Log', 'onShutdown'));
+ set_error_handler(array('OC_Log', 'onError' ));
+
// set debug mode if an xdebug session is active
if (!defined('DEBUG') || !DEBUG) {
if(isset($_COOKIE['XDEBUG_SESSION'])) {
diff --git a/lib/log.php b/lib/log.php
index 8bb2839be66..9c754cf60ce 100644
--- a/lib/log.php
+++ b/lib/log.php
@@ -36,4 +36,21 @@ class OC_Log {
$log_class=self::$class;
$log_class::write($app, $message, $level);
}
+
+ //Fatal errors handler
+ public static function onShutdown(){
+ $error = error_get_last();
+ if($error) {
+ //ob_end_clean();
+ self::write('PHP', $error['message'] . ' at ' . $error['file'] . '#' . $error['line'], self::FATAL);
+ } else {
+ return true;
+ }
+ }
+
+ //Recoverable errors handler
+ public static function onError($number, $message, $file, $line){
+ self::write('PHP', $message . ' at ' . $file . '#' . $line, self::WARN);
+
+ }
}