cakephp 3在记录时使用范围

时间:2015-10-22 14:56:02

标签: php cakephp cakephp-3.0

我在app.php

中为我的订单配置了记录器
'orders' => [
    'className' => 'Cake\Log\Engine\FileLog',
    'path' => LOGS,
    'file' => 'orders',
    'levels' => ['info'],
    'scopes' => ['orders'],
]

然后在我的一个模型中我做了:

 Log::info("There's an order", 'orders');

我希望日志消息仅在orders.log中写入,但它也会显示在debug.log中。

根据文件:

  

如果该范围有配置的记录器,则会显示日志消息   被引导到那些记录器。如果将日志消息写入   未知范围,处理该级别消息的记录器将记录   消息。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

当我四处闲逛时,我发现了这个:https://github.com/DaoAndCo/cakephp-logging

要将范围限制为一个记录器,请将其添加到默认记录器配置:

'scopes' => false

像这样:

'debug' => [
    'className' => 'Cake\Log\Engine\FileLog',
    'path' => LOGS,
    'file' => 'debug',
    'levels' => ['notice', 'info', 'debug'],
    'scopes' => false,
    'url' => env('LOG_DEBUG_URL', null),
],
'error' => [
    'className' => 'Cake\Log\Engine\FileLog',
    'path' => LOGS,
    'file' => 'error',
    'levels' => ['warning', 'error', 'critical', 'alert', 'emergency'],
    'scopes' => false,
    'url' => env('LOG_ERROR_URL', null),
],

就是这样!像魅力一样工作!我也做过测试。