diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-05-07 01:55:06 +0200 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2014-05-09 23:26:20 +0200 |
commit | b4298c68ca3b79abb7413452311daf074206c31c (patch) | |
tree | 1756de68d62958f705fabd11ba87b6e22fac7079 /lib | |
parent | 1083085e6e1727d3e9008c0f8a0729fbdade39f3 (diff) | |
download | nextcloud-server-b4298c68ca3b79abb7413452311daf074206c31c.tar.gz nextcloud-server-b4298c68ca3b79abb7413452311daf074206c31c.zip |
- make logger available in the container
- inject logger class into log
- adding PHPDoc comments and fixing typos
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/log.php | 30 | ||||
-rw-r--r-- | lib/private/server.php | 27 | ||||
-rw-r--r-- | lib/public/ilogger.php | 101 |
3 files changed, 145 insertions, 13 deletions
diff --git a/lib/private/log.php b/lib/private/log.php index e0b9fe3c696..c7a3b99a5e0 100644 --- a/lib/private/log.php +++ b/lib/private/log.php @@ -8,6 +8,8 @@ namespace OC; +use \OCP\ILogger; + /** * logging utilities * @@ -18,8 +20,24 @@ namespace OC; * MonoLog is an example implementing this interface. */ -class Log { - private $logClass; +class Log implements ILogger { + + private $logger; + + /** + * @param string $logger The logger that should be used + */ + public function __construct($logger=null) { + // FIXME: Add this for backwards compatibility, should be fixed at some point probably + if($logger === null) { + $this->logger = 'OC_Log_'.ucfirst(\OC_Config::getValue('log_type', 'owncloud')); + call_user_func(array($this->logger, 'init')); + } else { + $this->logger = $logger; + } + + } + /** * System is unusable. @@ -112,10 +130,6 @@ class Log { $this->log(\OC_Log::DEBUG, $message, $context); } - public function __construct() { - $this->logClass = 'OC_Log_'.ucfirst(\OC_Config::getValue('log_type', 'owncloud')); - call_user_func(array($this->logClass, 'init')); - } /** * Logs with an arbitrary level. @@ -130,7 +144,7 @@ class Log { } else { $app = 'no app in context'; } - $logClass=$this->logClass; - $logClass::write($app, $message, $level); + $logger=$this->logger; + $logger::write($app, $message, $level); } } diff --git a/lib/private/server.php b/lib/private/server.php index 4c29092cf44..52dd56e291e 100644 --- a/lib/private/server.php +++ b/lib/private/server.php @@ -30,9 +30,9 @@ class Server extends SimpleContainer implements IServerContainer { } if (\OC::$session->exists('requesttoken')) { - $requesttoken = \OC::$session->get('requesttoken'); + $requestToken = \OC::$session->get('requesttoken'); } else { - $requesttoken = false; + $requestToken = false; } if (defined('PHPUNIT_RUN') && PHPUNIT_RUN @@ -54,7 +54,7 @@ class Server extends SimpleContainer implements IServerContainer { ? $_SERVER['REQUEST_METHOD'] : null, 'urlParams' => $urlParams, - 'requesttoken' => $requesttoken, + 'requesttoken' => $requestToken, ), $stream ); }); @@ -158,6 +158,14 @@ class Server extends SimpleContainer implements IServerContainer { $this->registerService('AvatarManager', function($c) { return new AvatarManager(); }); + $this->registerService('Logger', function($c) { + /** @var $c SimpleContainer */ + $logClass = $c->query('AllConfig')->getSystemValue('log_type', 'owncloud'); + $logger = 'OC_Log_' . ucfirst($logClass); + call_user_func(array($logger, 'init')); + + return new Log($logger); + }); $this->registerService('JobList', function ($c) { /** * @var Server $c @@ -325,14 +333,14 @@ class Server extends SimpleContainer implements IServerContainer { } /** - * @return \OC\URLGenerator + * @return \OCP\IURLGenerator */ function getURLGenerator() { return $this->query('URLGenerator'); } /** - * @return \OC\Helper + * @return \OCP\IHelper */ function getHelper() { return $this->query('AppHelper'); @@ -393,6 +401,15 @@ class Server extends SimpleContainer implements IServerContainer { } /** + * Returns a logger instance + * + * @return \OCP\ILogger + */ + function getLogger(){ + return $this->query('Logger'); + } + + /** * Returns a router for generating and matching urls * * @return \OCP\Route\IRouter diff --git a/lib/public/ilogger.php b/lib/public/ilogger.php new file mode 100644 index 00000000000..ad0fcd05a1d --- /dev/null +++ b/lib/public/ilogger.php @@ -0,0 +1,101 @@ +<?php +/** + * Copyright (c) 2014 Bernhard Posselt <dev@bernhard-posselt.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OCP; + +/** + * Interface ILogger + * @package OCP + * + * This logger interface follows the design guidelines of PSR-3 + * https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md#3-psrlogloggerinterface + */ +interface ILogger { + /** + * System is unusable. + * + * @param string $message + * @param array $context + * @return null + */ + function emergency($message, array $context = array()); + + /** + * Action must be taken immediately. + * + * @param string $message + * @param array $context + * @return null + */ + function alert($message, array $context = array()); + + /** + * Critical conditions. + * + * @param string $message + * @param array $context + * @return null + */ + function critical($message, array $context = array()); + + /** + * Runtime errors that do not require immediate action but should typically + * be logged and monitored. + * + * @param string $message + * @param array $context + * @return null + */ + function error($message, array $context = array()); + + /** + * Exceptional occurrences that are not errors. + * + * @param string $message + * @param array $context + * @return null + */ + function warning($message, array $context = array()); + + /** + * Normal but significant events. + * + * @param string $message + * @param array $context + * @return null + */ + function notice($message, array $context = array()); + + /** + * Interesting events. + * + * @param string $message + * @param array $context + * @return null + */ + function info($message, array $context = array()); + + /** + * Detailed debug information. + * + * @param string $message + * @param array $context + * @return null + */ + function debug($message, array $context = array()); + + /** + * Logs with an arbitrary level. + * + * @param mixed $level + * @param string $message + * @param array $context + * @return mixed + */ + function log($level, $message, array $context = array()); +} |