summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorVictor Dubiniuk <victor.dubiniuk@gmail.com>2012-10-16 01:30:45 +0300
committerVictor Dubiniuk <victor.dubiniuk@gmail.com>2012-10-16 01:30:45 +0300
commitddcd7383574db2d076def39cfb130b8a4bf0180c (patch)
tree13e8b1d70354e9a673670e0061f2f99bbdc6a29d /lib
parente6c9f5d9f4ea78a89892932bd0f6752d19ee2c3a (diff)
parent2b6869bcea2b09357a81ddd299969c47e2b79ada (diff)
downloadnextcloud-server-ddcd7383574db2d076def39cfb130b8a4bf0180c.tar.gz
nextcloud-server-ddcd7383574db2d076def39cfb130b8a4bf0180c.zip
Merge branch 'extended_log'
PHP errors logging into the owncloud log
Diffstat (limited to 'lib')
-rw-r--r--lib/base.php4
-rw-r--r--lib/log.php22
2 files changed, 26 insertions, 0 deletions
diff --git a/lib/base.php b/lib/base.php
index 9f21e26279f..69685559608 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -323,6 +323,10 @@ class OC{
self::initPaths();
+ register_shutdown_function(array('OC_Log', 'onShutdown'));
+ set_error_handler(array('OC_Log', 'onError'));
+ set_exception_handler(array('OC_Log', 'onException'));
+
// 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 6de99b4ea6b..4bba62cf4b2 100644
--- a/lib/log.php
+++ b/lib/log.php
@@ -39,4 +39,26 @@ class OC_Log {
$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;
+ }
+ }
+
+ // Uncaught exception handler
+ public static function onException($exception){
+ self::write('PHP', $exception->getMessage() . ' at ' . $exception->getFile() . '#' . $exception->getLine(), self::FATAL);
+ }
+
+ //Recoverable errors handler
+ public static function onError($number, $message, $file, $line){
+ self::write('PHP', $message . ' at ' . $file . '#' . $line, self::WARN);
+
+ }
}