diff --git a/lib/Cake/Log/CakeLog.php b/lib/Cake/Log/CakeLog.php index de7098b31..dfb2ce781 100644 --- a/lib/Cake/Log/CakeLog.php +++ b/lib/Cake/Log/CakeLog.php @@ -34,7 +34,7 @@ App::uses('LogEngineCollection', 'Log'); * A sample configuration would look like: * * {{{ - * CakeLog::config('my_log', array('engine' => 'FileLog')); + * CakeLog::config('my_log', array('engine' => 'File')); * }}} * * See the documentation on CakeLog::config() for more detail. @@ -133,7 +133,7 @@ class CakeLog { * * {{{ * CakeLog::config('second_file', array( - * 'engine' => 'FileLog', + * 'engine' => 'File', * 'path' => '/var/logs/my_app/' * )); * }}} @@ -378,7 +378,7 @@ class CakeLog { */ protected static function _autoConfig() { self::$_Collection->load('default', array( - 'engine' => 'FileLog', + 'engine' => 'File', 'path' => LOGS, )); } diff --git a/lib/Cake/Log/LogEngineCollection.php b/lib/Cake/Log/LogEngineCollection.php index 0704c77fa..2304246a0 100644 --- a/lib/Cake/Log/LogEngineCollection.php +++ b/lib/Cake/Log/LogEngineCollection.php @@ -63,7 +63,9 @@ class LogEngineCollection extends ObjectCollection { */ protected static function _getLogger($loggerName) { list($plugin, $loggerName) = pluginSplit($loggerName, true); - + if (substr($loggerName, -3) !== 'Log') { + $loggerName .= 'Log'; + } App::uses($loggerName, $plugin . 'Log/Engine'); if (!class_exists($loggerName)) { throw new CakeLogException(__d('cake_dev', 'Could not load class %s', $loggerName)); diff --git a/lib/Cake/Test/Case/Log/CakeLogTest.php b/lib/Cake/Test/Case/Log/CakeLogTest.php index f2d1d94b7..20a5c9132 100644 --- a/lib/Cake/Test/Case/Log/CakeLogTest.php +++ b/lib/Cake/Test/Case/Log/CakeLogTest.php @@ -87,6 +87,18 @@ class CakeLogTest extends CakeTestCase { * @return void */ public function testValidKeyName() { + CakeLog::config('valid', array('engine' => 'File')); + $stream = CakeLog::stream('valid'); + $this->assertInstanceOf('FileLog', $stream); + CakeLog::drop('valid'); + } + +/** + * test config() with valid key name including the deprecated Log suffix + * + * @return void + */ + public function testValidKeyNameLogSuffix() { CakeLog::config('valid', array('engine' => 'FileLog')); $stream = CakeLog::stream('valid'); $this->assertInstanceOf('FileLog', $stream); @@ -100,7 +112,7 @@ class CakeLogTest extends CakeTestCase { * @return void */ public function testInvalidKeyName() { - CakeLog::config('1nv', array('engine' => 'FileLog')); + CakeLog::config('1nv', array('engine' => 'File')); } /** @@ -144,7 +156,7 @@ class CakeLogTest extends CakeTestCase { */ public function testConfig() { CakeLog::config('file', array( - 'engine' => 'FileLog', + 'engine' => 'File', 'path' => LOGS )); $result = CakeLog::configured(); @@ -168,7 +180,7 @@ class CakeLogTest extends CakeTestCase { */ public function testDrop() { CakeLog::config('file', array( - 'engine' => 'FileLog', + 'engine' => 'File', 'path' => LOGS )); $result = CakeLog::configured(); @@ -214,12 +226,12 @@ class CakeLogTest extends CakeTestCase { unlink(LOGS . 'eggs.log'); } CakeLog::config('spam', array( - 'engine' => 'FileLog', + 'engine' => 'File', 'types' => 'debug', 'file' => 'spam', )); CakeLog::config('eggs', array( - 'engine' => 'FileLog', + 'engine' => 'File', 'types' => array('eggs', 'debug', 'error', 'warning'), 'file' => 'eggs', )); @@ -253,7 +265,7 @@ class CakeLogTest extends CakeTestCase { */ public function testStreamEnable() { CakeLog::config('spam', array( - 'engine' => 'FileLog', + 'engine' => 'File', 'file' => 'spam', )); $this->assertTrue(CakeLog::enabled('spam')); @@ -268,7 +280,7 @@ class CakeLogTest extends CakeTestCase { */ public function testStreamDisable() { CakeLog::config('spam', array( - 'engine' => 'FileLog', + 'engine' => 'File', 'file' => 'spam', )); $this->assertTrue(CakeLog::enabled('spam')); @@ -298,12 +310,12 @@ class CakeLogTest extends CakeTestCase { protected function _resetLogConfig() { CakeLog::config('debug', array( - 'engine' => 'FileLog', + 'engine' => 'File', 'types' => array('notice', 'info', 'debug'), 'file' => 'debug', )); CakeLog::config('error', array( - 'engine' => 'FileLog', + 'engine' => 'File', 'types' => array('warning', 'error', 'critical', 'alert', 'emergency'), 'file' => 'error', )); @@ -339,7 +351,7 @@ class CakeLogTest extends CakeTestCase { $this->_resetLogConfig(); CakeLog::config('shops', array( - 'engine' => 'FileLog', + 'engine' => 'File', 'types' => array('info', 'notice', 'warning'), 'scopes' => array('transactions', 'orders'), 'file' => 'shops', @@ -393,13 +405,13 @@ class CakeLogTest extends CakeTestCase { $this->_deleteLogs(); CakeLog::config('shops', array( - 'engine' => 'FileLog', + 'engine' => 'File', 'types' => array('info', 'notice', 'warning'), 'scopes' => array('transactions', 'orders'), 'file' => 'shops.log', )); CakeLog::config('eggs', array( - 'engine' => 'FileLog', + 'engine' => 'File', 'types' => array('info', 'notice', 'warning'), 'scopes' => array('eggs'), 'file' => 'eggs.log', @@ -426,7 +438,7 @@ class CakeLogTest extends CakeTestCase { $this->_deleteLogs(); CakeLog::config('string-scope', array( - 'engine' => 'FileLog', + 'engine' => 'File', 'types' => array('info', 'notice', 'warning'), 'scopes' => 'string-scope', 'file' => 'string-scope.log' @@ -437,7 +449,7 @@ class CakeLogTest extends CakeTestCase { CakeLog::drop('string-scope'); CakeLog::config('shops', array( - 'engine' => 'FileLog', + 'engine' => 'File', 'types' => array('info', 'notice', 'warning'), 'scopes' => array('transactions', 'orders'), 'file' => 'shops.log', @@ -526,7 +538,7 @@ class CakeLogTest extends CakeTestCase { $this->_resetLogConfig(); CakeLog::config('shops', array( - 'engine' => 'FileLog', + 'engine' => 'File', 'types' => array('info', 'debug', 'notice', 'warning'), 'scopes' => array('transactions', 'orders'), 'file' => 'shops', @@ -563,12 +575,12 @@ class CakeLogTest extends CakeTestCase { $this->_deleteLogs(); CakeLog::config('debug', array( - 'engine' => 'FileLog', + 'engine' => 'File', 'types' => array('notice', 'info', 'debug'), 'file' => 'debug', )); CakeLog::config('error', array( - 'engine' => 'FileLog', + 'engine' => 'File', 'types' => array('emergency', 'alert', 'critical', 'error', 'warning'), 'file' => 'error', )); @@ -677,12 +689,12 @@ class CakeLogTest extends CakeTestCase { $this->assertContains('Error: ' . $testMessage, $contents); CakeLog::config('spam', array( - 'engine' => 'FileLog', + 'engine' => 'File', 'file' => 'spam.log', 'types' => 'spam', )); CakeLog::config('eggs', array( - 'engine' => 'FileLog', + 'engine' => 'File', 'file' => 'eggs.log', 'types' => array('spam', 'eggs'), )); diff --git a/lib/Cake/Test/Case/Log/Engine/ConsoleLogTest.php b/lib/Cake/Test/Case/Log/Engine/ConsoleLogTest.php index 4583b18f7..7266fb6c9 100644 --- a/lib/Cake/Test/Case/Log/Engine/ConsoleLogTest.php +++ b/lib/Cake/Test/Case/Log/Engine/ConsoleLogTest.php @@ -52,12 +52,12 @@ class ConsoleLogTest extends CakeTestCase { public function setUp() { parent::setUp(); CakeLog::config('debug', array( - 'engine' => 'FileLog', + 'engine' => 'File', 'types' => array('notice', 'info', 'debug'), 'file' => 'debug', )); CakeLog::config('error', array( - 'engine' => 'FileLog', + 'engine' => 'File', 'types' => array('error', 'warning'), 'file' => 'error', )); diff --git a/lib/Cake/Test/Case/Log/LogEngineCollectionTest.php b/lib/Cake/Test/Case/Log/LogEngineCollectionTest.php new file mode 100644 index 000000000..92133d10b --- /dev/null +++ b/lib/Cake/Test/Case/Log/LogEngineCollectionTest.php @@ -0,0 +1,90 @@ + + * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) + * + * Licensed under The MIT License + * For full copyright and license information, please see the LICENSE.txt + * Redistributions of files must retain the above copyright notice + * + * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) + * @link http://book.cakephp.org/2.0/en/development/testing.html CakePHP(tm) Tests + * @package Cake.Test.Case.Log + * @since CakePHP(tm) v 2.4 + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ +App::uses('LogEngineCollection', 'Log'); +App::uses('FileLog', 'Log/Engine'); + +/** + * LoggerEngineLog class + */ +class LoggerEngineLog extends FileLog { +} + +/** + * LogEngineCollectionTest class + * + * @package Cake.Test.Case.Log + */ +class LogEngineCollectionTest extends CakeTestCase { + + public $Collection; + +/** + * Start test callback + * + * @return void + */ + public function setUp() { + parent::setUp(); + + $this->Collection = new LogEngineCollection(); + } + +/** + * test load + * + * @return void + */ + public function testLoad() { + $result = $this->Collection->load('key', array('engine' => 'File')); + $this->assertInstanceOf('CakeLogInterface', $result); + } + +/** + * test load with deprecated Log suffix + * + * @return void + */ + public function testLoadWithSuffix() { + $result = $this->Collection->load('key', array('engine' => 'FileLog')); + $this->assertInstanceOf('CakeLogInterface', $result); + } + +/** + * test that engines starting with Log also work properly + * + * @return void + */ + public function testLoadWithSuffixAtBeginning() { + $result = $this->Collection->load('key', array('engine' => 'LoggerEngine')); + $this->assertInstanceOf('CakeLogInterface', $result); + } + +/** + * test load with invalid Log + * + * @return void + * @expectedException CakeLogException + */ + public function testLoadInvalid() { + $result = $this->Collection->load('key', array('engine' => 'ImaginaryFile')); + $this->assertInstanceOf('CakeLogInterface', $result); + } + +}