博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
<Yii 学习>写入日志
阅读量:5072 次
发布时间:2019-06-12

本文共 3335 字,大约阅读时间需要 11 分钟。

$postStr ='test:'.(empty( $GLOBALS["HTTP_RAW_POST_DATA"])?'':$GLOBALS["HTTP_RAW_POST_DATA"]); //以test 开头 Yii::log($postStr,'trace','test');
'log' => array(            'class' => 'CLogRouter',            'routes' => array(//                array(//                    'class'=>'CWebLogRoute',//                ),                array(                    'class' => 'CFileLogRoute',                    'levels' => 'error, warning',                ),                array(                    'class' => 'CFileLogRoute',                    'levels' => 'trace',                     'categories'=>'test'                ),                array(                    'class' => 'CFileLogRoute',                    'categories' => 'test',                    'logFile' => 'test.txt',                ),//                array(//                    'class'=>'CFileLogRoute',//文件记录日志的形式//                     'levels'=>'trace',//日志记录级别//                    'categories'=>'system.db.*',//只显示关于数据库信息,包括数据库连接,数据库执行语句//                    'logFile' => 'app_'.date('Y-m-d').'.log',//日志保存文件名//                    'logPath'=>'D:\myamp\Apache\htdocs',//日志保存路径//                ),

 

========================================================================= Yii 提供了一个灵活可扩展的日志功能。记录的日志可以通过日志级别和信息分类进行归类。通过使用级别和分类过滤器,所选的信息还可以进一步路由到不同的目的地,例如一个文件,Email,浏览器窗口等。  1. 信息记录  信息可以通过 Yii::log 或 Yii::trace 记录。其区别是后者只在当应用程序运行在 调试模式(debug mode) 中时才会记录信息。 
Php代码  
  1. Yii::log($message, $level, $category);  
  2. Yii::trace($message, $category);  
当记录信息时,我们需要指定它的分类和级别分类是一段格式类似于 路径别名 的字符串。例如,如果一条信息是在 CController 中记录的,我们可以使用 system.web.CController 作为分类。信息级别应该是下列值中的一种:      trace: 这是在 Yii::trace 中使用的级别。它用于在开发中跟踪程序的执行流程。      info: 这个用于记录普通的信息。      profile: 这个是性能概述(profile)。下面马上会有更详细的说明。      warning: 这个用于警告(warning)信息。      error: 这个用于致命错误(fatal error)信息。  2. 信息路由  通过 Yii::log 或 Yii::trace 记录的信息是保存在内存中的。我们通常需要将它们显示到浏览器窗口中,或者将他们保存到一些持久存储例如文件、Email中。这个就叫作 信息路由,例如,发送信息到不同的目的地。  在 Yii 中,信息路由是由一个叫做 CLogRouter 的应用组件管理的。它负责管理一系列称作 日志路由 的东西。每个日志路由代表一个单独的日志目的地。通过一个日志路由发送的信息会被他们的级别和分类过滤。  要使用信息路由,我们需要安装并预加载一个 CLogRouter 应用组件。我们也还需要配置它的 routes 属性为我们想要的那些日志路由。下面的代码演示了一个所需的 应用配置 示例: 
Php代码  
  1. array(  
  2.     ......  
  3.     'preload'=>array('log'),  
  4.     'components'=>array(  
  5.         ......  
  6.         'log'=>array(  
  7.             'class'=>'CLogRouter',  
  8.             'routes'=>array(  
  9.                 array(  
  10.                     'class'=>'CFileLogRoute',  
  11.                     'levels'=>'trace, info',  
  12.                     'categories'=>'system.*',  
  13.                 ),  
  14.                 array(  
  15.                     'class'=>'CEmailLogRoute',  
  16.                     'levels'=>'error, warning',  
  17.                     'emails'=>'admin@example.com',  
  18.                 ),  
  19.             ),  
  20.         ),  
  21.     ),  
  22. )  
在上面的例子中,我们定义了两个日志路由。第一个是 CFileLogRoute ,它会把信息保存在位于应用程序 runtime 目录中的一个文件中。而且只有级别为 trace 或 info 、分类以 system. 开头的信息才会被保存。 第二个路由是 CEmailLogRoute ,它会将信息发送到指定的 email 地址,且只有级别为 error 或 warning 的才会发送。  在 Yii 中,有下列几种日志路由可用:  CDbLogRoute: 将信息保存到数据库的表中。  CEmailLogRoute: 发送信息到指定的 Email 地址。  CFileLogRoute: 保存信息到应用程序 runtime 目录中的一个文件中。  CWebLogRoute: 将 信息 显示在当前页面的底部。  CProfileLogRoute: 在页面的底部显示概述(profiling)信息。  注:信息路由发生在当前请求周期最后的 onEndRequest 事件触发时。 要显式终止当前请求过程,请调用 CApplication::end() 而不是使用 die() 或 exit(),因为 CApplication::end() 将会触发 onEndRequest 事件, 这样信息才会被顺利地记录。  3. 信息过滤  正如我们所提到的,信息可以在他们被发送到一个日志路由之前通过它们的级别和分类过滤。这是通过设置对应日志路由的 levels 和 categories 属性完成的。多个级别或分类应使用逗号连接。  由于信息分类是类似 xxx.yyy.zzz 格式的,我们可以将其视为一个分类层级。具体地,我们说 xxx 是 xxx.yyy 的父级,而xxx.yyy 又是 xxx.yyy.zzz 的父级。这样我们就可以使用 xxx.* 表示分类 xxx 及其所有的子级和孙级分类  http://zccst.iteye.com/blog/1554803

转载于:https://www.cnblogs.com/rainblack/p/5437930.html

你可能感兴趣的文章
JavaScript 克隆数组
查看>>
eggs
查看>>
一步步学习微软InfoPath2010和SP2010--第七章节--从SP列表和业务数据连接接收数据(4)--外部项目选取器和业务数据连接...
查看>>
oracle 报错ORA-12514: TNS:listener does not currently know of service requested in connec
查看>>
基于grunt构建的前端集成开发环境
查看>>
利用循环播放dataurl的视频来防止锁屏:NoSleep.js
查看>>
python3 生成器与迭代器
查看>>
java编写提升性能的代码
查看>>
Abstract Factory Pattern
查看>>
list 容器 排序函数.xml
查看>>
《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇03:暂停游戏》
查看>>
CPU,寄存器,一缓二缓.... RAM ROM 外部存储器等简介
查看>>
windows下编译FreeSwitch
查看>>
git .gitignore 文件不起作用
查看>>
Alan Turing的纪录片观后感
查看>>
c#自定义控件中的事件处理
查看>>
django Models 常用的字段和参数
查看>>
IOS--沙盒机制
查看>>
使用 JointCode.Shuttle 访问任意 AppDomain 的服务
查看>>
sqlite的坑
查看>>