Yii2 如何为yii中的不同模块动态设置日志文件路径
我想为每个模块设置不同的日志路径,以便所有错误、警告都应以模块名称作为父文件夹进行分类 i、 e 运行时/logs/module_name/errors.log 运行时/logs/module_name/warnings.log 运行时/logs/module_name/info.log 当前日志组件是在config/main.php中配置的Yii2 如何为yii中的不同模块动态设置日志文件路径,yii2,yii2-advanced-app,yii-components,Yii2,Yii2 Advanced App,Yii Components,我想为每个模块设置不同的日志路径,以便所有错误、警告都应以模块名称作为父文件夹进行分类 i、 e 运行时/logs/module_name/errors.log 运行时/logs/module_name/warnings.log 运行时/logs/module_name/info.log 当前日志组件是在config/main.php中配置的 'log' => [ 'traceLevel' => YII_DEBUG ? 3 : 0, 'flus
'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',
],
],
]
我想在上面的应用程序配置文件中动态分配日志文件路径值,以便在任何模块中调用任何错误、警告、信息时,它将自动选择该模块名称并记录信息。您可以从controller或module init动态添加日志目标
$target = new FileTarget();
$target->logFile = \Yii::getAlias('@runtime') . '/custom.log'
$target->categories = ['log-category']
\Yii::$app->getLog()->targets = [$target];
但我认为最好创建新的FileTarget类,并将静态设置(如类别)移动到其中。我不知道动态更改的可能性。您可能需要通过手动编写所有内容来暂时解决此问题。@EdvinTenovimas一定有办法,而不是编写所有内容……老实说,我无法回答这个问题。对不起(我只是手写了所有的东西(但没花太长时间)。