我想为每个模块设置不同的日志路径,以便所有错误,警告都应该用模块名称作为父文件夹进行分类。
即
运行/日志/ MODULE_NAME / errors.log
运行/日志/ MODULE_NAME / warnings.log
运行/日志/ MODULE_NAME / info.log建立。
当前日志组件在config / main.php
中配置 'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'flushInterval' => 1,
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['info'],
'categories' => ['common\modules\*'],
'logFile' => '@runtime/logs/common.modules.info.log',
],
],
]
我想在上面的应用程序配置文件中动态分配logFile路径值,这样如果在任何模块中调用任何错误,警告,信息,它将自动选择该模块名称并记录信息。
答案 0 :(得分:0)
您可以从控制器或模块初始化中动态添加日志目标。
$target = new FileTarget();
$target->logFile = \Yii::getAlias('@runtime') . '/custom.log'
$target->categories = ['log-category']
\Yii::$app->getLog()->targets = [$target];
但是我认为最好创建新的FileTarget类并将静态设置(如类别)移入其中。