|
作者:老王
CakePHP中,MVC各部分都是从Object对象继承而来的。在Object的定义中,有一个log()方法,可以用来记录日志,一般来说,我们可以从MVC中任何一个组件通过调用$this->log('...')来记录日志,那么什么情况应该记录日志呢?比如说开发过程中的调试信息,运行过程中的错误信息等等。
/**
* API for logging events.
*
* @param string $msg Log message
* @param int $type Error type constant. Defined in app/config/core.php.
* @access public
*/
function log($msg, $type = LOG_ERROR)
此方法的实现大致是一个CakeLog的一个包装,如果想更仔细的了解内部细节,可以参考cake_log.php文件,日志的类型大致有以下几种:
$levels = array(
LOG_WARNING => 'warning',
LOG_NOTICE => 'notice',
LOG_INFO => 'info',
LOG_DEBUG => 'debug',
LOG_ERR => 'error',
LOG_ERROR => 'error'
);
如果是error或者warning,则会把错误信息记录到error.log文件,如果是notice或者debug,则会把错误信息记录到debug.log文件,如果这几种错误类型都不是,则会建立一个名为“$type.log”的日志文件($type就是你的错误类型名字)。
所有的日志文件都保存在/app/tmp/logs目录。
在/app/config/core.php文件中有日志的配置选项:
/**
* Defines the default error type when using the log() function. Used for
* differentiating error logging and debugging. Currently PHP supports LOG_DEBUG.
*/
define('LOG_ERROR', 2); |
|