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

标签 cakephp logging cakephp-2.1

我试图确保当我的应用程序处于生产模式时 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 中,而我不希望这些错误出现在其中。

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

我做错了什么?感谢您的帮助。

最佳答案

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

调用:

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

Bootstrap :

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

关于cakephp - 在生产模式下写入 CakePHP 自定义日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18694405/

相关文章:

php - CakePHP 3 关联删除

php - Cakephp 3自定义密码列以在模型中使用_setPassword方法?

Cakephp 3 : How to get max amout row from a table

java - 通过eclipse启动应用程序和服务器时不创建tomcat日志

全局记录(跨包)

cakephp - mysql-real-escape-string : Access denied in CakePHP

php - CakePHP 2.1.3 单个页面的 SEO 元描述与 default.ctp

php - cakePHP通过关系绑定(bind)hasmany

java - Spring Boot 管理和日志记录

cakephp - 在 CakePHP 中保存记录时使用 'on duplicate key update'