在生产模式下写入CakePHP自定义日志文件

drm*_*nja 4 logging cakephp cakephp-2.1

我正在尝试确保当我的应用程序处于生产模式时,CakePHP会写入自定义日志文件.

我正在使用日志方法写入日志: -

$this->log($url, 'payment');
Run Code Online (Sandbox Code Playgroud)

当我处于开发模式时,这项工作很好,但当我切换到生产模式时,它不再写入文件(这是我想要它做的).

我已经尝试在bootstrap.php中配置文件记录选项,这部分解决了这个问题: -

CakeLog::levels(array('payment'));
CakeLog::config('payment', array(
    'engine' => 'FileLog',
    'types' => array('payment'),
    'file' => 'payment',
));
Run Code Online (Sandbox Code Playgroud)

这现在以生产模式写入日志文件,但它也将其他错误写入我的payment.log,我不想在那里.

我试过阅读文档,但要么它没有解释如何实现这一点,要么我误解了它.

我究竟做错了什么?谢谢你的帮助.

bre*_*anp 6

我想这可能会对你有所帮助:

呼叫:

CakeLog::write('info', 'log msg', array('payments'));
Run Code Online (Sandbox Code Playgroud)

引导:

CakeLog::config('payments', array(
    'engine' => 'FileLog',
    'types' => array('info'),
    'scopes' => array('payments')
));
Run Code Online (Sandbox Code Playgroud)

正如文档所述,范围可在2.2中找到:http://book.cakephp.org/2.0/en/core-libraries/logging.html#logging-scopes

你用cakephp 2.1标记了这个问题.也许你只需升级:http://book.cakephp.org/2.0/en/appendices/2-2-migration-guide.html