没有记录joomla异常

时间:2014-04-14 17:51:46

标签: php joomla joomla3.0

我有一个joomla网站,运行3.0.2 *,我注意到joomla捕获的异常没有记录在任何地方。我目前正在使用内置数据库日志记录,由以下代码初始化,放置在自定义插件的onAfterInitialise函数中。

        // Initialize logging. 
    jimport('joomla.log.log');
    $config = jFactory::getConfig();

    JLog::addLogger(array(
        'logger'    => 'database',
        'db_driver' => $config->get('dbtype'),
        'db_host'   => $config->get('host'),
        'db_user'   => $config->get('user'),
        'db_pass'   => $config->get('password'),
        'db_prefix' => $config->get('dbprefix'),            
        'db_database' => ctaSettings::get('logging.db'),
        JLog::ALL,
        ''
    )); 

ctaSettings :: get是一个类方法,用于检索用于记录的数据库的名称。我可以验证它是否正常工作,并且正在记录以下命令:

JLog::add(__LINE__. " - ". __FILE__, JLog::INFO, 'cat');

但是,如果组件中抛出异常,则不会记录任何内容。 Joomla应该记录被捕异常吗?有没有办法让Joomla的内置错误处理自动记录这些东西?我们有相当多的自定义代码,如果必须修改每个自定义组件,插件和模块,以便在抛出错误时显式记录错误,那将是不方便的。

* We're working on upgrading, but cannot at the moment.

1 个答案:

答案 0 :(得分:0)

我使用setErrorHandling方法启用异常日志记录。它已被弃用,但我的理解是尚未引入任何替代方案。所以,我会保持这个开放,万一有人有更好的答案,但以下代码行解决了我的问题。

JError::setErrorHandling(JLog::ALL & ~JLog::WARNING, 'log');

& ~JLog :: WARNING是指定不记录“此类已弃用”错误。它并不理想,但它似乎是唯一有效的答案。

相关问题