4

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

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

$this->log($url, 'payment');

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

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

CakeLog::levels(array('payment'));
CakeLog::config('payment', array(
    'engine' => 'FileLog',
    'types' => array('payment'),
    'file' => 'payment',
));

现在这会在生产模式下写入日志文件,但它也会将其他错误写入我的 payment.log ,这是我不想要的。

我已经尝试通读文档,但要么它没有解释如何实现这一点,要么我误解了它。

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

4

1 回答 1

6

我认为这可能会对您有所帮助:

称呼:

CakeLog::write('info', 'log msg', array('payments'));

引导程序:

CakeLog::config('payments', array(
    'engine' => 'FileLog',
    'types' => array('info'),
    'scopes' => array('payments')
));

如文档所述,范围在 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

于 2013-09-09T09:17:18.633 回答