Yii框架日志操作与实例详解
Yii框架提供了丰富的日志操作方法,可以快速的进行日志的记录和查看。Yii框架的日志目录默认是在@runtime/logs下,如果想要改变日志目录可以在配置文件中进行设置。
Yii框架支持的日志记录方式主要有文件记录、数据库记录、邮件记录以及syslog记录等方式。
1.文件记录
文件记录是Yii框架常用的一种记录方式,这种方式将日志信息以文件的形式保存到指定目录下。
使用方式如下:
$logger = Yii::getLogger();
$logger->log('This is a debug message', yii\log\Logger::LEVEL_DEBUG);
其中Logger::LEVEL_DEBUG为日志级别,可选参数有:
- LEVEL_TRACE,0
- LEVEL_INFO,1
- LEVEL_WARNING,2
- LEVEL_ERROR,3
- LEVEL_CRITICAL,4
- LEVEL_PROFILE,5
- LEVEL_PROFILE_BEGIN,6
- LEVEL_PROFILE_END,7
- LEVEL_DEBUG,8
在Yii框架中,我们可以使用以下方式输出日志。
Yii::debug($message, $category);
Yii::info($message, $category);
Yii::warning($message, $category);
Yii::error($message, $category);
其中$message为日志内容,$category为日志分类,可选参数。
通常我们将$category设置为当前类名,可以方便的在日志中区分不同的日志信息。
2.数据库记录
Yii框架也支持将日志信息保存到数据库中,可以方便的进行查询统计。
使用方式如下:
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yii\log\DbTarget',
'levels' => ['error', 'warning'],
'except' => ['yii\web\HttpException:404'],
],
],
],
其中targets中class为‘yii\log\DbTarget’时即可将日志输出到数据库中。levels为保存级别,except为不保存的信息,可以根据需要进行设置。
3.邮件记录
Yii框架的日志还支持将日志信息以邮件的形式发送出去。
使用方式如下:
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yii\log\EmailTarget',
'levels' => ['error', 'warning'],
'message' => [
'from' => ['admin@example.com'],
'to' => ['developer1@example.com', 'developer2@example.com'],
'subject' => 'Error log',
],
],
],
],
其中targets中class为‘yii\log\EmailTarget’时即可将日志以邮件的形式发送出去。
4.syslog记录
Yii框架的日志还支持将日志信息输出到系统日志。
使用方式如下:
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yii\log\SyslogTarget',
'levels' => ['error', 'warning'],
'identity' => 'My Application',
'facility' => LOG_LOCAL0,
],
],
],
其中targets中class为‘yii\log\SyslogTarget’时即可将日志信息输出到系统日志。
以上就是Yii框架的日志操作方法的详细介绍,通过使用这些方法,可以方便的进行日志的查看和操作。
