aboutsummaryrefslogtreecommitdiffstats
path: root/lib/legacy
diff options
context:
space:
mode:
authorBart Visscher <bartv@thisnet.nl>2013-03-09 21:00:48 +0100
committerBart Visscher <bartv@thisnet.nl>2013-05-13 08:28:10 +0200
commitb41999a2c0628f3241b07afcae0b29bae682583c (patch)
tree620cd1129d19f69550c79a70915af04e2e546fe0 /lib/legacy
parente8c154f3416e7ae596ce0ffc31acda84ffbaa71b (diff)
downloadnextcloud-server-b41999a2c0628f3241b07afcae0b29bae682583c.tar.gz
nextcloud-server-b41999a2c0628f3241b07afcae0b29bae682583c.zip
Implement OC\Log as proxy to OC_Log
OC\Log implements the Psr\Log\LoggerInterface interface. See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md for the full interface specification.
Diffstat (limited to 'lib/legacy')
-rw-r--r--lib/legacy/log.php72
1 files changed, 72 insertions, 0 deletions
diff --git a/lib/legacy/log.php b/lib/legacy/log.php
new file mode 100644
index 00000000000..4e6642b6a2f
--- /dev/null
+++ b/lib/legacy/log.php
@@ -0,0 +1,72 @@
+<?php
+/**
+ * Copyright (c) 2012 Bart Visscher <bartv@thisnet.nl>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+/**
+ * logging utilities
+ *
+ * Log is saved by default at data/owncloud.log using OC_Log_Owncloud.
+ * Selecting other backend is done with a config option 'log_type'.
+ */
+
+OC_Log::$object = new \OC\Log();
+class OC_Log {
+ public static $object;
+
+ const DEBUG=0;
+ const INFO=1;
+ const WARN=2;
+ const ERROR=3;
+ const FATAL=4;
+
+ static public $enabled = true;
+ static protected $class = null;
+
+ /**
+ * write a message in the log
+ * @param string $app
+ * @param string $message
+ * @param int level
+ */
+ public static function write($app, $message, $level) {
+ if (self::$enabled) {
+ if (!self::$class) {
+ self::$class = 'OC_Log_'.ucfirst(OC_Config::getValue('log_type', 'owncloud'));
+ call_user_func(array(self::$class, 'init'));
+ }
+ $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;
+ }
+ }
+
+ // 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) {
+ if (error_reporting() === 0) {
+ return;
+ }
+ self::write('PHP', $message . ' at ' . $file . '#' . $line, self::WARN);
+
+ }
+}