CodeIgniter 怎么处理错误?异常捕获和日志记录方法有哪些?

文章导读
Previous Quiz Next 在使用应用程序时,我们经常会遇到错误。如果错误没有得到适当处理,会让用户感到非常困扰。CodeIgniter 提供了一个简单的错误处理机制。
A A

CodeIgniter - 错误处理



Previous
Quiz
Next

在使用应用程序时,我们经常会遇到错误。如果错误没有得到适当处理,会让用户感到非常困扰。CodeIgniter 提供了一个简单的错误处理机制。

在开发模式下,你希望显示错误消息,而不是在生产模式下,因为在开发阶段可以轻松解决错误消息。

可以通过修改 index.php 文件中的以下行来更改应用程序的环境。此值可以设置为任意内容,但通常使用三种值(development、test、production)。

define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');

不同的环境需要不同级别的错误报告。默认情况下,development 模式会显示错误,而 testing 和 live 模式会隐藏它们。CodeIgniter 提供了以下三个函数来处理错误。

  • show_error() 函数以 HTML 格式在屏幕顶部显示错误。

语法

show_error($message, $status_code, $heading = 'An Error Was Encountered')

参数

  • $message (mixed) − 错误消息

  • $status_code (int) − HTTP 响应状态码

  • $heading (string) − 错误页面标题

返回值

mixed
  • show_404() 函数在尝试访问不存在的页面时显示错误。

语法

show_404($page = '', $log_error = TRUE)

参数

  • $page (string) URI 字符串

  • $log_error (bool) 是否记录错误

返回值

void
  • log_message() 函数用于写入日志消息。当你想写入自定义消息时,此函数非常有用。

语法

log_message($level, $message, $php_error = FALSE)

参数

  • $level (string) − 日志级别:error、debug 或 info

  • $message (string) − 要记录的消息

  • $php_error (bool) − 是否记录原生 PHP 错误消息

返回值

void

可以在 application/config/config.php 文件中启用日志记录。以下是 config.php 文件的截图,你可以在其中设置阈值。

/*
|--------------------------------------------------------------------------------
|   错误日志阈值
|--------------------------------------------------------------------------------
| 通过设置大于零的阈值可以启用错误日志记录。
| 阈值决定记录哪些内容。阈值选项如下:
|
|   0 = 禁用日志记录,错误日志关闭
|   1 = 错误消息(包括 PHP 错误)
|   2 = 调试消息
|   3 = 信息消息
|   4 = 所有消息
|
| 也可以传递包含阈值级别的数组来显示单个错误类型
|
|   array(2) = 调试消息,不包括错误消息
| 对于实时站点,通常只启用错误(1)记录,否则
| 日志文件会很快填满。
|
*/
$config['log_threshold'] = 0;

日志消息可以在 application/log/ 中找到。在启用日志文件之前,请确保该目录可写。

各种错误消息模板可以在 application/views/errors/cliapplication/views/errors/html 中找到。