Yii2实现log输出到file及database的方法

本文实例讲述了Yii2实现log输出到file及database的方法。分享给大家供大家参考,具体如下:

编辑config/web.php

首先log要开启

'bootstrap' => [ 'log' ],

[file]

'components' => [ 'log' => [ 'targets' => [ [ 'class' => 'yii\log\FileTarget', 'exportInterval' => 1, ], ], ], ]

默认输出到runtime/logs/app.log

注意webserver或控制台用户要有写入该文件的权限

[database]

'log' => [ 'targets' => [ [ 'class' => 'yii\log\DbTarget', 'levels' => ['error', 'warning', 'trace'], ] ] ],

默认输出db组件对应的数据库下{{%log}}表

yii2根目录下运行下面命令生成对应的table schema

./yii migrate --migrationPath=@yii/log/migrations/

注意config/console.php下也要有和web.php同样的配置,否则命令执行不成功。

还可以根据不同的环境配置不同的日志模式

'components' => [ 'log' => [ 'traceLevel' => YII_ENV == 'dev' ? 3 : 0, 'targets' => [ [ 'class' => 'yii\log\DbTarget', 'levels' => YII_DEBUG ? ['error', 'warning', 'trace'] : ['error'], ], [ 'class' => 'yii\log\FileTarget', 'levels' => YII_DEBUG ? ['error', 'warning', 'trace'] : ['error', 'warning'], ], ], ], ],

更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

时间: 2024-10-17 07:16:45

Yii2实现log输出到file及database的方法的相关文章

集中式日志管理部署下的Log输出

集中式日志管理部署下的Log输出 Log是程序记录执行过程,辅助排查问题的必备良药.随着后台程序越来越复杂,集群规模越来越大,通常会引入集中式程序日志管理,比如使用splunk或者ELK统一管理日志.Log打的好,排错无烦恼,但是往往打不好.下面就聊聊怎么打Log,特别是在使用集中式日志管理架构时. 为什么Log输出变得越来越难 一句话描述Log查找的需求:根据查询条件,返回并且仅返回所关注的用例相关的所有上下文. 怎么变难的: 单线程同步:有时间戳和重要参数值就差不多了 多线程同步:你可能需要

chrome-console.log 输出 JQuery对象时,

问题描述 console.log 输出 JQuery对象时, 向看看它的结构. 第一个 输出貌似只是把 类型输出了.第二个可以输出 树状的结构.这是怎么回事啊?? 解决方案 写成2句,合成依据没有办法,打印的是字符串了,而不是dom对象 解决方案二: 我认为是第一行代码是字符串的'+'运算,由于隐式类型转换的存在,会自动对$(vHtml)调用toString()方法,得到'[object object]'

yii2 log配置-yii2当log为error时自动发邮件该如何配置呢

问题描述 yii2当log为error时自动发邮件该如何配置呢 当log为error时自动发邮件该如何配置呢,当log为error时自动发邮件该如何配置呢,

debug-C++ 如何LOG输出父类指针调用的是哪个子类的方法

问题描述 C++ 如何LOG输出父类指针调用的是哪个子类的方法 项目不能debug调试,只能打LOG. 其中有一个父类类型的指针调用虚函数_pFather->Start(); 我想用Log输出该指针指向哪个子类类型,也就是想确认调用的是哪个子类的Start(). 子类有好几十个,并且我不会在每个子类的方法中都加上Log日志吧!!! 请问有没有什么好方法.

对于Android系统Log输出日志的封装LogUtils

MainActivity如下: package cc.cn.logutil; import android.os.Bundle; import android.app.Activity; /** * Demo描述: * 对于Android系统Log输出日志的封装LogUtils * 1 可修改LogUtils中的LEVEL值觉得哪些级别的日志可以输出. * 所以方便选择性输出日志或者屏蔽日志输出 * 2 输出的日志除了本想输出的信息外还包含了该日志输出时所属 * 的线程,类,方法名,已经在该方法

群申请的时候,调用了接口没有log输出,也没有消息提示

问题描述 new Thread(new Runnable() {                    public void run() {                        try {                            //如果是membersOnly的群,需要申请加入,不能直接join                            if(group.isMembersOnly()){                                Lo

JS中捕获console.log()输出的方法_javascript技巧

本文实例讲述了JS中捕获console.log()输出的方法.分享给大家供大家参考.具体分析如下: 我们知道console.log()可以将信息输出到debugger中供开发者查看.但如果我们想要在JS中获取console.log()的输出结果呢?其实不难,先将原本的console.log保存起来,然后替换成另外一个实现即可.代码如下: var lastLog; console.oldLog = console.log; console.log = function(str) { console

Yii2中使用asset压缩js,css文件的方法_php实例

官网文档 http://www.yiiframework.com/doc-2.0/guide-structure-assets.html yii目录下运行 asset/template assets.php 生成assets.php,这是一个配置模板,并修改如下 <?php /** * Configuration file for the "yii asset" console command. */ // In the console environment, some pat

mysql Cant open file:表名修改方法

mysql教程 cant open file:表名修改方法 1.can't open file: '[table]mytable.myi' 2.table 'picture' is marked as crashed and should be repaired 下面讲的方法只对myisam格式的表有效.其他类型的损坏需要从备份中恢复. 1,repair table sql statement(mysql服务必须处于运行状态). 2,命令mysqlcheck(mysql服务可以处于运行状态).