/** * @version $Id: log.php 10709 2008-08-21 09:58:52Z eddieajau $ * @package Joomla * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ // no direct access defined( '_JEXEC' ) or die( 'Restricted access' ); jimport( 'joomla.plugin.plugin' ); /** * Joomla! System Logging Plugin * * @package Joomla * @subpackage System */ class plgSystemLog extends JPlugin { /** * Constructor * * For php4 compatability we must not use the __constructor as a constructor for plugins * because func_get_args ( void ) returns a copy of all passed arguments NOT references. * This causes problems with cross-referencing necessary for the observer design pattern. * * @access protected * @param object $subject The object to observe * @param array $config An array that holds the plugin configuration * @since 1.5 */ function plgSystemLog(& $subject, $config) { parent::__construct($subject, $config); } function onLoginFailure($response) { jimport('joomla.error.log'); $log = JLog::getInstance(); $errorlog = array(); switch($response['status']) { case JAUTHENTICATE_STATUS_CANCEL : { $errorlog['status'] = $response['type'] . " CANCELED: "; $errorlog['comment'] = $response['error_message']; $log->addEntry($errorlog); } break; case JAUTHENTICATE_STATUS_FAILURE : { $errorlog['status'] = $response['type'] . " FAILURE: "; $errorlog['comment'] = $response['error_message']; $log->addEntry($errorlog); } break; default : { $errorlog['status'] = $response['type'] . " UNKNOWN ERROR: "; $errorlog['comment'] = $response['error_message']; $log->addEntry($errorlog); } break; } } }