1、配置阶段
1)log组件放入bootstrap配置中,用于初始化启动
2)components中配置log的日志消费处理类
2、启动逻辑
1)yii框架实例化组件log,coreComponents方法默认指定log对应yii\log\Dispatcher类
2)Dispatcher类实例化,__construct方法根据配置设置静态常量logger,然后调用父类的__construct方法(即Object的)将参数设置为实例的属性,如果配置没有配置logger,则设置成默认的yii\log\Logger类
3)然后Dispatcher类再调用init方法,将配置中的targets里的日志消费处理类实例化
4)至此,log类已经启动完成,可以等待产生日志了
3、产生日志及日志消费逻辑
1)调用Yii::trace、Yii::error、Yii::info、Yii::warning产生日志
2)框架读取静态常量logger,来调用log方法
3)log方法根据一定条件触发flush方法,用于触发日志消费类来消费日志数据
4)flush方法中读取dispatcher实例,调用dispatcher方法,将日志数据路由
5)dispatcher方法循环遍历配置中的日志消费类实例,调用collect方法来收集日志数据
6)collect方法根据配置中设置的levels来过滤日志,最后调用export方法将日志消费(不同的日志消费类有自己的export方法)
7)至此产生日志及日志消费逻辑结束
时间: 2024-10-17 17:04:52