我使用Yii组件"log";以记录一些重要信息。在我的目标:
[
'class' => FileTarget::class,
'categories' => ['import.category'],
'levels' => ['info', 'warning', 'error'],
'logFile' => '@runtime/logs/import/import.log',
'maxFileSize' => 10240,
'logVars' => []
]
我用这种方式调用记录器:
Yii::warning('some message', 'import.category');
我在logs/import/import.log中有一条记录。这很好。但我在logs/app.log中有相同的记录。我不需要logs/app.log中的记录。这是默认情况吗?我能把它关掉吗?
顺便说一下,如果我使用:
Yii::info('some message', 'import.category');
我只在logs/import/import.log中有一条记录,但错误或警告会复制该记录。
app.log
目标的配置可能如下所示:
[
'class' => 'yiilogFileTarget',
'levels' => ['error', 'warning'],
'logFile' => '@runtime/logs/app.log',
],
因为没有指定任何类别,所以所有错误和警告消息都写在那里。为了将类别排除在登录目标之外,yiilogTarget
中有$except
属性,它是日志目标的常见父级。所以你想修改app.log
目标的设置,如下所示:
[
'class' => 'yiilogFileTarget',
'levels' => ['error', 'warning'],
'logFile' => '@runtime/logs/app.log',
'except' => ['import.category'],
],