0

我的蛋糕设置已将调试设置为 0,但它仍在调试到 app/tmp/logs/debug.log。为了确保没有伏都教发生,我什至打印出 Configure::read('debug') 并吐出 0。有谁知道为什么会发生这种情况?这是此调试日志的重复日志结果:

2013-02-15 01:25:41 Notice: Strict (2048): Non-static method App::_loadVendor() should not be called statically in [/var/www/website/htdocs/lib/Cake/Core/App.php, line 614]
Trace:
App::_loadVendor() - CORE/Cake/Core/App.php, line 614
App::import() - CORE/Cake/Core/App.php, line 614
include - APP/View/Helper/AdHelper.php, line 3
App::load() - CORE/Cake/Core/App.php, line 497
spl_autoload_call - [internal], line ??
class_exists - [internal], line ??
HelperCollection::load() - CORE/Cake/View/HelperCollection.php, line 75
View::loadHelpers() - CORE/Cake/View/View.php, line 577
View::render() - CORE/Cake/View/View.php, line 359
Controller::render() - CORE/Cake/Controller/Controller.php, line 898
Dispatcher::_invoke() - CORE/Cake/Routing/Dispatcher.php, line 114
Dispatcher::dispatch() - CORE/Cake/Routing/Dispatcher.php, line 89
[main] - APP/webroot/index.php, line 96

我也在使用 PHP 5.4,并且正在运行 CakePHP 2.3。

谢谢。

4

2 回答 2

1

确保您完全(对于每个控制器和操作)关闭您的调试模式。core.php在你的蛋糕文件中试试这个代码。

Configure::write('Error', array(
    'handler' => 'ErrorHandler::handleError',
    'level' => 0,
    'trace' => false
));

有关更多详细信息,请查看此处

于 2013-02-15T09:40:30.313 回答
0

如果将 debug 设置为 0,对 debug() 或 Debugger::log 的任何调用都将写入 debug.log(除非您覆盖了默认值)。而当 debug 大于 0 时,对 debug() 的调用将在浏览器中显示为 flash 消息(如果从 Model 或 Controller 调用,则在视图顶部;如果从 View 调用,则在视图顶部)。

您可以在 bootstrap.php 中定义进入哪个日志的错误类型:

App::uses('CakeLog', 'Log');
CakeLog::config('debug', array(
    'engine' => 'FileLog',
    'types' => array('info', 'debug', 'notice'),
    'file' => 'debug',
));
CakeLog::config('error', array(
    'engine' => 'FileLog',
    'types' => array('warning', 'error', 'critical', 'alert', 'emergency'),
    'file' => 'error',
));

默认情况下,Cake 将“notice”放在“debug”CakeLog::config 的类型数组中,这意味着通知进入 debug.log。将“通知”复制到“错误”配置的类型数组中,它应该将通知放在 error.log 中。

于 2014-06-13T12:56:38.457 回答