codeigniter错误日志开启需三步:设environment为development、log_threshold≥1(推荐开发用4)、确保application/logs目录可写;还可调用log_message()主动记录error/debug/info级信息。

打开 CodeIgniter 的错误日志很简单,关键就三步:改环境、设阈值、确保目录可写。默认是关闭的,不手动开不会记录任何错误,排查问题时基本等于“盲操作”。
1. 切换到开发环境
在项目根目录的 index.php 文件里,把环境定义改成 development:
define('ENVIRONMENT', 'development');
这一步不是必须但强烈建议——它会同时开启 PHP 错误报告和 CI 自身的调试提示,比如数据库连接失败时直接报错,而不是静默失败。
2. 设置日志记录等级
打开 application/config/config.php,找到 $config['log_threshold'] 这一行:
-
$config['log_threshold'] = 1;→ 只记录 PHP 错误和框架级错误(推荐上线前用) -
$config['log_threshold'] = 4;→ 记录所有级别(error/debug/info),适合本地调试 -
$config['log_threshold'] = 0;→ 完全关闭日志(默认值)
注意:数值越大记录越详细,但日志文件增长也越快。日常开发用 4 没问题,上线后建议调回 1。
3. 确保 logs 目录可写且路径正确
CodeIgniter 默认把日志写在 application/logs/ 下:
- 确认该目录存在,且 Web 服务器用户(如 www-data、apache 或 nginx)有写入权限(chmod 755 或 775)
- 如果想改路径,可在 config.php 中设置:
$config['log_path'] = '/var/log/ci_logs/';(注意结尾带斜杠) - 路径必须是绝对路径或相对于 application 目录的有效相对路径
权限不对时,log_message() 不报错也不写入,容易误以为没生效。
4. 主动记录关键信息(可选但实用)
除了自动捕获的错误,你可以在控制器、模型里加主动日志:
log_message('error', '用户登录失败,ID: '.$user_id);log_message('debug', '查询SQL: '.$this->db->last_query());log_message('info', '订单创建完成,订单号: '.$order_no);
级别不同,内容用途也不同:error 用于定位故障,debug 用于流程跟踪,info 用于状态留痕。日志文件名格式为 log-YYYY-MM-DD.php,按日期自动分割,方便查找。











