Cakelog正在写入多个文件,但我希望它只写入我指定的文件

时间:2012-08-27 21:49:10

标签: cakephp logging cakephp-2.2

我想在payment.log中记录付款网关错误。所以将其添加到bootstrap

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

发生问题时:

CakeLog::write('payment', 'The is a problem!');

但是,上面的命令会在This is a problem!payment.log中记录error.log,而登录到第一个文件就足够了。

此外,如果其他控制器(如users)中出现任何其他问题,它将登录到这两个文件。虽然它应该只登录error.log

(我的意思是付款错误应该登录payment.log,其他任何问题都应写入error.log

哪里出错?

感谢。

1 个答案:

答案 0 :(得分:0)

看起来您可能错过config中的范围选项吗?

CakeLog::config('payments', array(
    'engine' => 'File',
    'scopes' => array('payment', 'order')
));

然后,您需要指定要写入的范围:

CakeLog::write('warning', 'Stuff is broken here', 'payment');

可能需要一些摆弄才能恰到好处,但这应该会有所帮助。