日志

CmlPHP中提供了简化的psr-3日志接口。在对其进行改进的过程中也是比较纠结是否要完全按照psr-3,甚至直接使用monolog这样强大的第三方包。但是在我直接用monolog后看了下内存占用,已经接近空业务的时候框架自身的占用了。而CmlPHP是定位轻量的开发框架。所以还是决定自己开发了一个简化的psr-3日志接口。

框架在线上模式的时候,默认Log只记录致命错误及未被捕获异常可以通过修改配置文件中log_warn_log=>true来记录更详细的日志。默认使用File驱动日志按日期保存在Runtime/Logs目录下。可以修改为Redis驱动。

涉及到Log主要的配置

  1. /**日志配置**/
  2. 'log_warn_log' => false, //警告级别的日志默认不记录
  3. 'log_driver' => 'File', //日志驱动,内置File/Redis两种
  4. 'log_prefix' => 'cml_log',//会显示到日志内容中,同时当以redis为驱动的时候会做为队列的前缀

开发中使用Log接口

\Cml\Log::debug($log, array $context = array());//添加debug类型的日志\Cml\Log::info($log, array $context = array());//添加info类型的日志\Cml\Log::notice($log, array $context = array());//添加notice类型的日志\Cml\Log::warning($log, array $context = array());//添加warning类型的日志\Cml\Log::error($log, array $context = array());//添加error类型的日志\Cml\Log::critical($log, array $context = array());//添加critical类型的日志\Cml\Log::emergency($log, array $context = array());//添加emergency类型的日志

不同类型的日志存储 File驱动存储的路径为 Runtime/Logs/年/月/日/类型.log

在Redis中为cmllog类型名称的List。 如: 驱动为File时。框架在线上模式出现致命错误(如数据库连接不上)的时候。log文件为projxxxx\Runtime\Logs\2015\12\23\emergency.log (当天日期为2015/12/23) 驱动为Redis时。框架在线上模式出现致命错误(如数据库连接不上)的时候。Redis的List名为 cml_log_emergency

原文: http://doc.cmlphp.com/devintro/log.html