yii2之log组件学习

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)至此产生日志及日志消费逻辑结束


posted on 2016-08-19 19:23  小说贝斯  阅读(1667)  评论(0编辑  收藏  举报

导航