一:在配置文件的log组件中配置DbTarget
'log' => [ 'traceLevel' => YII_DEBUG "color: #ff0000">二:生成日志表在项目目录下执行如下命令生成日志表
php yii migrate --migrationPath=@yii/log/migrations/三:使用日志
在需要使用日志的地方使用
Yii::info()四:自定义DbTarget日志
1:首先创建一个自定义的日志表
(1)在项目目录下执行
php yii migrate/create create_test_log(2):在创建的migrate文件下编写创建数据库的迁移脚本
<"htmlcode">php yii migrate2:编写一个DbTarget类来继承yiilogDbTarget类
<"[$ip]"; } /** * @inheritdoc */ public function export() { if ($this->db->getTransaction()) { $this->db = clone $this->db; } $tableName = $this->db->quoteTableName($this->logTable); $sql = "INSERT INTO $tableName ([[level]], [[category]], [[prefix]], [[route]], [[method]], [[app]], [[module]], [[request]], [[status]], [[message]], [[request_at]], [[ip]]) VALUES (:level, :category, :prefix, :route, :method, :app, :module, :request, :status, :message, :request_at, :ip)"; $command = $this->db->createCommand($sql); $request = Yii::$app->getRequest(); list($route, $params) = $request->resolve(); $method = $request->getMethod(); $module = Yii::$app->controller->module->id; $route = str_replace("{$module}/", '', $route); foreach ($this->messages as $message) { list($text, $level, $category, $timestamp) = $message; $statusCode = 200; if (!is_string($text)) { if ($text instanceof \Throwable || $text instanceof \Exception) { $statusCode = $text instanceof HttpException "htmlcode">'log' => [ 'traceLevel' => YII_DEBUG ? 3 : 0, 'targets' => [ [ 'class' => 'yii\log\FileTarget', 'levels' => ['error', 'warning'], ], 'test' => [ 'class' => 'app\components\DbTarget', 'logTable' => '{{%test_log}}', 'levels' => ['error', 'info', 'warning'], ], ], ],4:使用DbTarget日志
同样的使用Yii::info来记录日志
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
狼山资源网 Copyright www.pvsay.com
暂无“Yii使用DbTarget实现日志功能的示例代码”评论...