yii2学习笔记(七)日志


工欲善其事,必先利其器。写代码前一定要先了解怎样方便调试。

目的是希望在开发环境下,记录更多的log信息,和环境有关,和前后台无关。于是直接编辑yii2\environments\dev\common\config\main-local.php,在components中加入如下代码:


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


init,dev,搞定。不过这样有个问题,打印$config全局变量时发现,\common\config\main-local.php和\frontend\config\main.php里面同时定义了log这块,也就是数组叠加了,保留一个就可以了。

然后到frontend\runtime\logs里面可以看到log的信息。


记录trace可以这样:

Yii::trace('能看到信息和方法名,以及文件行数', __METHOD__);


记录的levels,可以有如下选择:

trace: 这是在 Yii::trace 中使用的级别。它用于在开发中跟踪程序的执行流程。 
info: 这个用于记录普通的信息。 
profile: 这个是性能概述(profile)。 
warning: 这个用于警告(warning)信息。 
error: 这个用于致命错误(fatal error)信息。 

记录的class,可以有如下选择:

yii\log\DbTarget: 发送到数据库。
yii\log\EmailTarget: 发送到指定的邮箱地址。
yii\log\FileTarget: 发送到文件。
yii\log\SyslogTarget: 发送到系统消息。

下面是一个配置email相关的例子:

'components' => [
	'log' => [
		'targets' => [
			[
				'class' => 'yii\log\DbTarget',
				'levels' => ['error', 'warning'],
			],
			[
				'class' => 'yii\log\EmailTarget',
				'levels' => ['error'],
				'categories' => ['yii\db\*'],
				'message' => [
				   'from' => ['log@example.com'],
				   'to' => ['admin@example.com', 'developer@example.com'],
				   'subject' => 'Database errors at example.com',
				],
			],
		],
	],
],


如果在生产环境,如果想每天记录一个log文件,可以考虑直接修改vendor\yiisoft\yii2\log\FileTarget.php中的init(),里面有log文件地址。或者直接在levels下面再加上logFile定义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值