summaryrefslogtreecommitdiffstats
path: root/lib/private
diff options
context:
space:
mode:
authorBjörn Schießle <schiessle@owncloud.com>2014-02-03 07:58:44 -0800
committerBjörn Schießle <schiessle@owncloud.com>2014-02-03 07:58:44 -0800
commitc0aeaf9ec0afd0f8d8f732d327a864dba6b2f34d (patch)
tree1cf1ed78e28251185a01c965d33b52040a47ab92 /lib/private
parentcf6538abdeb1a89ee020ded19a9711ea1f013327 (diff)
parentcf5277b558e1838a1b8126621cb8cd5a0ca60cb4 (diff)
downloadnextcloud-server-c0aeaf9ec0afd0f8d8f732d327a864dba6b2f34d.tar.gz
nextcloud-server-c0aeaf9ec0afd0f8d8f732d327a864dba6b2f34d.zip
Merge pull request #7013 from owncloud/dont_write_passwords_to_log
wrap stat() call in a try/catch block
Diffstat (limited to 'lib/private')
-rw-r--r--lib/private/log/errorhandler.php31
-rw-r--r--lib/private/log/owncloud.php1
2 files changed, 26 insertions, 6 deletions
diff --git a/lib/private/log/errorhandler.php b/lib/private/log/errorhandler.php
index 69cb960de91..f6c96ef8218 100644
--- a/lib/private/log/errorhandler.php
+++ b/lib/private/log/errorhandler.php
@@ -14,10 +14,23 @@ class ErrorHandler {
/** @var LoggerInterface */
private static $logger;
- public static function register() {
+ /**
+ * @brief remove password in URLs
+ * @param string $msg
+ * @return string
+ */
+ private static function removePassword($msg) {
+ return preg_replace('/\/\/(.*):(.*)@/', '//xxx:xxx@', $msg);
+ }
+
+ public static function register($debug=false) {
$handler = new ErrorHandler();
- set_error_handler(array($handler, 'onError'));
+ if ($debug) {
+ set_error_handler(array($handler, 'onAll'), E_ALL);
+ } else {
+ set_error_handler(array($handler, 'onError'));
+ }
register_shutdown_function(array($handler, 'onShutdown'));
set_exception_handler(array($handler, 'onException'));
}
@@ -32,14 +45,14 @@ class ErrorHandler {
if($error && self::$logger) {
//ob_end_clean();
$msg = $error['message'] . ' at ' . $error['file'] . '#' . $error['line'];
- self::$logger->critical($msg, array('app' => 'PHP'));
+ self::$logger->critical(self::removePassword($msg), array('app' => 'PHP'));
}
}
// Uncaught exception handler
public static function onException($exception) {
$msg = $exception->getMessage() . ' at ' . $exception->getFile() . '#' . $exception->getLine();
- self::$logger->critical($msg, array('app' => 'PHP'));
+ self::$logger->critical(self::removePassword($msg), array('app' => 'PHP'));
}
//Recoverable errors handler
@@ -48,7 +61,15 @@ class ErrorHandler {
return;
}
$msg = $message . ' at ' . $file . '#' . $line;
- self::$logger->warning($msg, array('app' => 'PHP'));
+ self::$logger->error(self::removePassword($msg), array('app' => 'PHP'));
+
+ }
+
+ //Recoverable handler which catch all errors, warnings and notices
+ public static function onAll($number, $message, $file, $line) {
+ $msg = $message . ' at ' . $file . '#' . $line;
+ self::$logger->debug(self::removePassword($msg), array('app' => 'PHP'));
}
+
}
diff --git a/lib/private/log/owncloud.php b/lib/private/log/owncloud.php
index 4c86d0e45e0..3590bbd436d 100644
--- a/lib/private/log/owncloud.php
+++ b/lib/private/log/owncloud.php
@@ -69,7 +69,6 @@ class OC_Log_Owncloud {
}
$time = new DateTime(null, $timezone);
// remove username/passswords from URLs before writing the to the log file
- $message = preg_replace('/\/\/(.*):(.*)@/', '//xxx:xxx@', $message);
$entry=array('app'=>$app, 'message'=>$message, 'level'=>$level, 'time'=> $time->format($format));
$entry = json_encode($entry);
$handle = @fopen(self::$logFile, 'a');