Yii如何使用DbTarget实现日志功能

  介绍

这篇文章将为大家详细讲解有关Yii如何使用DbTarget实现日志功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

<强>一:在配置文件的日志组件中配置DbTarget

 Yii如何使用DbTarget实现日志功能

& # 39;日志# 39;,=祝辞,(   ,& # 39;tracelevel # 39;,=祝辞,YII_DEBUG  ?, 3,:, 0,   ,& # 39;目标# 39;,=祝辞,(   (才能   ,,& # 39;类# 39;,=祝辞,& # 39;yii \ \ FileTarget&日志# 39;   ,,& # 39;水平# 39;,=祝辞,[& # 39;错误# 39;,,& # 39;预警# 39;],   ,,,   & # 39;才能测试# 39;,=祝辞,(   ,,& # 39;类# 39;,=祝辞,& # 39;yii \ \ DbTarget&日志# 39;//DaTarget类   ,,& # 39;logTable& # 39;,=祝辞,& # 39;{{% test_log}} & # 39;//日,志表   ,,& # 39;水平# 39;,=祝辞,[& # 39;错误# 39;,,& # 39;信息# 39;,,& # 39;预警# 39;],//日志等级   ,,,   ,),   ],

<强>二:生成日志表

在项目目录下执行如下命令生成日志表

php  yii  migrate ——migrationPath=@yii/日志/迁移/

<强>三:使用日志

在需要使用日志的地方使用

Yii:: info ()

<强>四:自定义DbTarget日志

1:首先创建一个自定义的日志表

(1)在项目目录下执行

php  yii 迁移/create  create_test_log

(2):在创建的迁移文件下编写创建数据库的迁移脚本

& lt; php ?   use , yii \ db \迁移;/* *   ,* Class  m200720_091126_create_test_log   ,*/class  m200720_091126_create_test_log  extends 迁移   {/* *   *,才能{@inheritdoc}   ,*/,public  function  safeUp ()   ,{   这→美元才能知道(& # 39;{{% test_log}} & # 39;,, (   ,,& # 39;id # 39;,=祝辞,$ this→bigPrimaryKey (),   ,,& # 39;水平# 39;,=祝辞,这→美元整数()→notNull()→评论(& # 39;日志等级& # 39;),   ,,& # 39;类别# 39;,=祝辞,$ this→字符串(100)→notNull()→评论(& # 39;分类名称& # 39;),   ,,& # 39;前缀# 39;,=祝辞,$ this→文本(),   ,,& # 39;路线# 39;,=祝辞,$ this→字符串(100)→notNull()→评论(& # 39;路由& # 39;),   ,,& # 39;方法# 39;,=祝辞,$ this→字符串(20)→notNull()→评论(& # 39;请求方式& # 39;),   ,,& # 39;应用# 39;,=祝辞,$ this→字符串(20)→评论(& # 39;请求应用& # 39;),   ,,& # 39;模块# 39;,=祝辞,$ this→字符串(20)→评论(& # 39;请求模块& # 39;),   ,,& # 39;请求# 39;,=祝辞,$ this→文本()→评论(& # 39;请求参数& # 39;),   ,,& # 39;状态# 39;,=祝辞,$ this→字符串(10)→notNull()→评论(& # 39;状态码& # 39;),   ,,& # 39;消息# 39;,=祝辞,$ this→文本()→评论(& # 39;日志内容& # 39;),   ,,& # 39;request_at& # 39;,=祝辞,$ this→双()→notNull()→评论(& # 39;请求时间& # 39;),   ,,& # 39;ip # 39;,=祝辞,$ this→字符串(63)→评论(& # 39;请求ip # 39;),   ,,,& # 39;CHARACTER  SET  utf8mb4  COLLATE  utf8mb4_unicode_ci 引擎=InnoDB 评论=\ & # 39;请求日志表\ & # 39;& # 39;);//才能增加索引   这个美元才能→方法createIndex (& # 39; idx_log_level& # 39;,, & # 39; {{% test_log}} & # 39;,, & # 39;水平# 39;);   这个美元才能→方法createIndex (& # 39; idx_log_category& # 39;,, & # 39; {{% test_log}} & # 39;,, & # 39;类别# 39;);   这个美元才能→方法createIndex (& # 39; idx_log_route& # 39;,, & # 39; {{% test_log}} & # 39;,, & # 39;路线# 39;);   这个美元才能→方法createIndex (& # 39; idx_log_method& # 39;,, & # 39; {{% test_log}} & # 39;,, & # 39;方法# 39;);   这个美元才能→方法createIndex (& # 39; idx_log_status& # 39;,, & # 39; {{% test_log}} & # 39;,, & # 39;状态# 39;);   ,}/* *   *才能@inheritdoc   ,*/,public  function  safeDown ()   ,{   这个美元才能→dropTable (& # 39; {{% test_log}} & # 39;);   ,}   }

(3):执行如下命令生成DbTarget日志表

php  yii 迁移

2:编写一个DbTarget类来继承yiilogDbTarget类

& lt; php ?   namespace 应用\组件;   use , Yii;   use  yii \助手\ VarDumper;   use , yii \ \ LogRuntimeException日志;   use  yii \ web \ textbox;   use , yii \ web \请求;/* *   ,* DbTarget  stores  log  messages 拷贝a  database 表。   ,*   ,* @see  yii \ \ DbTarget日志   ,*   ,* @author  wangjian   ,* @since  1.0   ,*/class  DbTarget  extends  \ yii \ \ DbTarget日志   {/* *   *才能@inheritdoc   ,*/,public  categories 美元;=,(   & # 39;才能应用# 39;   & # 39;才能yii \ web \ textbox: * & # 39;   ,);/* *   *才能@inheritdoc   ,*/,public  except 美元;=,(//才能,& # 39;yii \ web \ textbox: 404 & # 39;   ,);/* *   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

Yii如何使用DbTarget实现日志功能