首页 > 开发 > PHP > 正文

YII Framework框架教程之日志用法详解

2024-05-04 22:31:56
字体:
来源:转载
供稿:网友

本文实例讲述了YII Framework框架日志用法。分享给大家供大家参考,具体如下:

日志的作用(此处省略1000字)

YII中的日志很好很强大,允许你把日志信息存放到数据库,发送到制定email,存放咋文件中,意见显示页面是,甚至可以用来做性能分析。

YII中日志的基本配置:/yii_dev/testwebap/protected/config/main.php

'log'=>array(  'class'=>'CLogRouter',  'routes'=>array(    array(      'class'=>'CFileLogRoute',      'levels'=>'error, warning',    ),    // uncomment the following to show log messages on web pages    /*    array(      'class'=>'CWebLogRoute',    ),    */  ),),

YII中日志的基本使用:

可以通过YII提供的Yii::log和Yii::trace进行日志信息的输出,两者的区别看看定义就知道了。

函数定义

public static function trace($msg,$category='application'){  if(YII_DEBUG)    self::log($msg,CLogger::LEVEL_TRACE,$category);}public static function log($msg,$level=CLogger::LEVEL_INFO,$category='application'){  if(self::$_logger===null)    self::$_logger=new CLogger;  if(YII_DEBUG && YII_TRACE_LEVEL>0 && $level!==CLogger::LEVEL_PROFILE)  {    $traces=debug_backtrace();    $count=0;    foreach($traces as $trace)    {      if(isset($trace['file'],$trace['line']) && strpos($trace['file'],YII_PATH)!==0)      {        $msg.="/nin ".$trace['file'].' ('.$trace['line'].')';        if(++$count>=YII_TRACE_LEVEL)          break;      }    }  }  self::$_logger->log($msg,$level,$category);}

$msg:你要输出的日志信息

$category:日志信息所属分类

$level:日志信息的级别:

const LEVEL_TRACE='trace';用于调试环境,追踪程序执行流程
const LEVEL_WARNING='warning';警告信息
const LEVEL_ERROR='error';致命错误信息
const LEVEL_INFO='info';普通提示信息
const LEVEL_PROFILE='profile';性能调试信息

基本使用方法举例

<?phpclass DefaultController extends Controller{  public function actionCache ()  {    $category='system.testmod.defaultController';    $level=CLogger::LEVEL_INFO;    $msg='action begin ';    Yii::log($msg,$level,$category);  }}

YII中日志的输出位置

上文提到YII中日志的输出位置可以定义为很多位置。主要通过配置文件修改例如:

'log'=>array(  'class'=>'CLogRouter',  'routes'=>array(    array(      'class'=>'CFileLogRoute',      'levels'=>'error, warning',    ),    // uncomment the following to show log messages on web pages    array(      'class'=>'CWebLogRoute',    ),  ),),

不仅输出到日志文件中,还输出到web页面上。

配置文件中:

routes用于配置日志输出的位置,
class是日志,日志路由的类名
levels是日志的顶级,字符串序列,用都好分割。具体对应CLooger中的常量

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表