diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2014-05-12 16:40:58 +0200 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2014-05-12 16:40:58 +0200 |
commit | 1d18fd4e6da16895ac1ef879c7b416f555bb385d (patch) | |
tree | ad875f49b5e73ad8df99e269c84da22498ec894c /lib/private | |
parent | 9a9665f361c42764f5ae9f5f3ce63f71fdfcad5c (diff) | |
parent | 93dbb39e775bf599f19445b27a10b0862cc3bab8 (diff) | |
download | nextcloud-server-1d18fd4e6da16895ac1ef879c7b416f555bb385d.tar.gz nextcloud-server-1d18fd4e6da16895ac1ef879c7b416f555bb385d.zip |
Merge pull request #8482 from owncloud/public-logger
Make logger available in the container
Diffstat (limited to 'lib/private')
-rw-r--r-- | lib/private/log.php | 39 | ||||
-rw-r--r-- | lib/private/server.php | 27 |
2 files changed, 53 insertions, 13 deletions
diff --git a/lib/private/log.php b/lib/private/log.php index e0b9fe3c696..98465ec40ea 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,16 @@ class Log { } else { $app = 'no app in context'; } - $logClass=$this->logClass; - $logClass::write($app, $message, $level); + // interpolate $message as defined in PSR-3 + $replace = array(); + foreach ($context as $key => $val) { + $replace['{' . $key . '}'] = $val; + } + + // interpolate replacement values into the message and return + $message = strtr($message, $replace); + + $logger = $this->logger; + $logger::write($app, $message, $level); } } diff --git a/lib/private/server.php b/lib/private/server.php index 27763ea6477..fd8c2c38ad0 100644 --- a/lib/private/server.php +++ b/lib/private/server.php @@ -31,9 +31,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 @@ -55,7 +55,7 @@ class Server extends SimpleContainer implements IServerContainer { ? $_SERVER['REQUEST_METHOD'] : null, 'urlParams' => $urlParams, - 'requesttoken' => $requesttoken, + 'requesttoken' => $requestToken, ), $stream ); }); @@ -159,6 +159,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 @@ -329,14 +337,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'); @@ -397,6 +405,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 |