/** * test convenience methods */ public function testConvenienceMethods() { $this->_deleteLogs(); Log::config('debug', ['engine' => 'File', 'path' => LOGS, 'types' => ['notice', 'info', 'debug'], 'file' => 'debug']); Log::config('error', ['engine' => 'File', 'path' => LOGS, 'types' => ['emergency', 'alert', 'critical', 'error', 'warning'], 'file' => 'error']); $testMessage = 'emergency message'; Log::emergency($testMessage); $contents = file_get_contents(LOGS . 'error.log'); $this->assertRegExp('/(Emergency|Critical): ' . $testMessage . '/', $contents); $this->assertFileNotExists(LOGS . 'debug.log'); $this->_deleteLogs(); $testMessage = 'alert message'; Log::alert($testMessage); $contents = file_get_contents(LOGS . 'error.log'); $this->assertRegExp('/(Alert|Critical): ' . $testMessage . '/', $contents); $this->assertFileNotExists(LOGS . 'debug.log'); $this->_deleteLogs(); $testMessage = 'critical message'; Log::critical($testMessage); $contents = file_get_contents(LOGS . 'error.log'); $this->assertContains('Critical: ' . $testMessage, $contents); $this->assertFileNotExists(LOGS . 'debug.log'); $this->_deleteLogs(); $testMessage = 'error message'; Log::error($testMessage); $contents = file_get_contents(LOGS . 'error.log'); $this->assertContains('Error: ' . $testMessage, $contents); $this->assertFileNotExists(LOGS . 'debug.log'); $this->_deleteLogs(); $testMessage = 'warning message'; Log::warning($testMessage); $contents = file_get_contents(LOGS . 'error.log'); $this->assertContains('Warning: ' . $testMessage, $contents); $this->assertFileNotExists(LOGS . 'debug.log'); $this->_deleteLogs(); $testMessage = 'notice message'; Log::notice($testMessage); $contents = file_get_contents(LOGS . 'debug.log'); $this->assertRegExp('/(Notice|Debug): ' . $testMessage . '/', $contents); $this->assertFileNotExists(LOGS . 'error.log'); $this->_deleteLogs(); $testMessage = 'info message'; Log::info($testMessage); $contents = file_get_contents(LOGS . 'debug.log'); $this->assertRegExp('/(Info|Debug): ' . $testMessage . '/', $contents); $this->assertFileNotExists(LOGS . 'error.log'); $this->_deleteLogs(); $testMessage = 'debug message'; Log::debug($testMessage); $contents = file_get_contents(LOGS . 'debug.log'); $this->assertContains('Debug: ' . $testMessage, $contents); $this->assertFileNotExists(LOGS . 'error.log'); $this->_deleteLogs(); }
/** * Load Event Handlers during bootstrap. * * Plugins can add their own custom EventHandler in Config/events.php * with the following format: * * $config = array( * 'EventHandlers' => array( * 'Example.ExampleEventHandler' => array( * 'eventKey' => null, * 'options' => array( * 'priority' => 1, * 'passParams' => false, * 'className' => 'Plugin.ClassName', * ))); * * @return void */ public static function loadListeners() { $eventManager = self::instance(); $eventHandlers = Configure::read('EventHandlers'); $validKeys = ['eventKey' => null, 'options' => []]; if (!empty($eventHandlers) && is_array($eventHandlers)) { foreach ($eventHandlers as $eventHandler => $eventOptions) { if (is_numeric($eventHandler)) { $eventHandler = $eventOptions; $eventOptions = []; } list($plugin, $class) = pluginSplit($eventHandler); if (!empty($eventOptions)) { extract(array_intersect_key($eventOptions, $validKeys)); } if (isset($eventOptions['options']['className'])) { list($plugin, $class) = pluginSplit($eventOptions['options']['className']); } $class = App::className($eventHandler, 'Event'); if (class_exists($class)) { $settings = isset($eventOptions['options']) ? $eventOptions['options'] : []; $listener = new $class($settings); $eventManager->on($listener); } else { Log::notice(__d('union', 'EventHandler {0} not found in plugin {1}', $eventHandler, $plugin), 'event'); } } } }