diff options
author | Bart Visscher <bartv@thisnet.nl> | 2013-03-09 21:00:48 +0100 |
---|---|---|
committer | Bart Visscher <bartv@thisnet.nl> | 2013-05-13 08:28:10 +0200 |
commit | b41999a2c0628f3241b07afcae0b29bae682583c (patch) | |
tree | 620cd1129d19f69550c79a70915af04e2e546fe0 /lib/legacy | |
parent | e8c154f3416e7ae596ce0ffc31acda84ffbaa71b (diff) | |
download | nextcloud-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.php | 72 |
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); + + } +} |