[TASK] Implement LoggerInterface from PSR-3 27/21827/3
authorSteffen Müller <typo3@t3node.com>
Tue, 2 Jul 2013 23:04:50 +0000 (01:04 +0200)
committerGeorg Ringer <georg.ringer@gmail.com>
Thu, 4 Jul 2013 07:17:39 +0000 (09:17 +0200)
PSR-3 expects the Logger class to implement a given LoggerInterface.

Resolves: #48880
Releases: 6.2
Change-Id: I5c5b507fc6e157e499b9bf42772c209404968391
Reviewed-on: https://review.typo3.org/21827
Reviewed-by: Helmut Hummel
Tested-by: Helmut Hummel
Reviewed-by: Wouter Wolters
Reviewed-by: Markus Klein
Reviewed-by: Christian Kuhn
Reviewed-by: Georg Ringer
Tested-by: Georg Ringer
typo3/contrib/Psr/Log/LICENSE [new file with mode: 0644]
typo3/contrib/Psr/Log/LoggerInterface.php [new file with mode: 0644]
typo3/sysext/core/Classes/Log/Logger.php
typo3/sysext/core/ext_autoload.php

diff --git a/typo3/contrib/Psr/Log/LICENSE b/typo3/contrib/Psr/Log/LICENSE
new file mode 100644 (file)
index 0000000..474c952
--- /dev/null
@@ -0,0 +1,19 @@
+Copyright (c) 2012 PHP Framework Interoperability Group
+
+Permission is hereby granted, free of charge, to any person obtaining a copy 
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights 
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 
+copies of the Software, and to permit persons to whom the Software is 
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in 
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/typo3/contrib/Psr/Log/LoggerInterface.php b/typo3/contrib/Psr/Log/LoggerInterface.php
new file mode 100644 (file)
index 0000000..476bb96
--- /dev/null
@@ -0,0 +1,114 @@
+<?php
+
+namespace Psr\Log;
+
+/**
+ * Describes a logger instance
+ *
+ * The message MUST be a string or object implementing __toString().
+ *
+ * The message MAY contain placeholders in the form: {foo} where foo
+ * will be replaced by the context data in key "foo".
+ *
+ * The context array can contain arbitrary data, the only assumption that
+ * can be made by implementors is that if an Exception instance is given
+ * to produce a stack trace, it MUST be in a key named "exception".
+ *
+ * See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md
+ * for the full interface specification.
+ */
+interface LoggerInterface
+{
+    /**
+     * System is unusable.
+     *
+     * @param string $message
+     * @param array $context
+     * @return null
+     */
+    public function emergency($message, array $context = array());
+
+    /**
+     * Action must be taken immediately.
+     *
+     * Example: Entire website down, database unavailable, etc. This should
+     * trigger the SMS alerts and wake you up.
+     *
+     * @param string $message
+     * @param array $context
+     * @return null
+     */
+    public function alert($message, array $context = array());
+
+    /**
+     * Critical conditions.
+     *
+     * Example: Application component unavailable, unexpected exception.
+     *
+     * @param string $message
+     * @param array $context
+     * @return null
+     */
+    public 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
+     */
+    public function error($message, array $context = array());
+
+    /**
+     * Exceptional occurrences that are not errors.
+     *
+     * Example: Use of deprecated APIs, poor use of an API, undesirable things
+     * that are not necessarily wrong.
+     *
+     * @param string $message
+     * @param array $context
+     * @return null
+     */
+    public function warning($message, array $context = array());
+
+    /**
+     * Normal but significant events.
+     *
+     * @param string $message
+     * @param array $context
+     * @return null
+     */
+    public function notice($message, array $context = array());
+
+    /**
+     * Interesting events.
+     *
+     * Example: User logs in, SQL logs.
+     *
+     * @param string $message
+     * @param array $context
+     * @return null
+     */
+    public function info($message, array $context = array());
+
+    /**
+     * Detailed debug information.
+     *
+     * @param string $message
+     * @param array $context
+     * @return null
+     */
+    public function debug($message, array $context = array());
+
+    /**
+     * Logs with an arbitrary level.
+     *
+     * @param mixed $level
+     * @param string $message
+     * @param array $context
+     * @return null
+     */
+    public function log($level, $message, array $context = array());
+}
index 8b4ff42..1c87bbb 100644 (file)
@@ -25,6 +25,7 @@ namespace TYPO3\CMS\Core\Log;
  *
  * This copyright notice MUST APPEAR in all copies of the script!
  ***************************************************************/
+
 /**
  * Logger to log events and data for different components.
  *
@@ -32,7 +33,7 @@ namespace TYPO3\CMS\Core\Log;
  * @author Steffen Müller <typo3@t3node.com>
  * @author Steffen Gebert <steffen.gebert@typo3.org>
  */
-class Logger {
+class Logger implements \Psr\Log\LoggerInterface {
 
        /**
         * Logger name or component for which this logger is meant to be used for.
index ea7fe6f..5f55e92 100644 (file)
@@ -10,6 +10,7 @@ $typo3Classes = array(
        'tbe_foldertree' => PATH_typo3 . 'class.browse_links.php',
        'tbe_pagetree' => PATH_typo3 . 'class.browse_links.php',
        'transferdata' => PATH_typo3 . 'show_item.php',
+       'Psr\\Log\\LoggerInterface' => PATH_typo3 . 'contrib/Psr/Log/LoggerInterface.php',
 );
 return $typo3Classes;
 ?>
\ No newline at end of file