CodeIgniter日志功能默认关闭,需在index.php设ENVIRONMENT为development,config.php中配置log_threshold(1-4级),确保application/logs目录存在且Web服务器用户有写权限,再用log_message()手动记录。

CodeIgniter 日志功能默认是关闭的,开启和配置级别需要修改几个关键位置,核心在于环境设定、阈值控制与路径权限。
确保开发环境已启用
日志只在开发环境(development)下默认更活跃,生产环境会限制输出。打开根目录下的 index.php,确认这行已设置:
define('ENVIRONMENT', 'development');
如果设为 production,即使日志阈值开得再高,多数信息也不会写入——这是 CI 的安全机制,不是 bug。
设置 log_threshold 控制记录级别
打开 application/config/config.php,找到并修改这一行:
-
$config['log_threshold'] = 1;—— 只记录错误(PHP 错误、用户级异常) -
$config['log_threshold'] = 2;—— 错误 + 调试信息(适合开发中追踪流程) -
$config['log_threshold'] = 3;—— 错误 + 调试 + 一般信息(如初始化提示) -
$config['log_threshold'] = 4;—— 全部级别(含 CI 内部调试日志,慎用于生产) -
$config['log_threshold'] = 0;—— 完全禁用日志
注意:CI3 中该值是整数;CI4 已改用字符串级别(如 'error'、'debug'),配置文件位置也变为 app/Config/Logger.php。
检查 logs 目录可写且路径正确
日志默认写入 application/logs/,必须满足两个条件:
- 目录存在且 Web 服务器用户(如 www-data、apache、nginx)有写权限(建议 chmod 755 或 775)
- 若想自定义路径,修改同一 config 文件中的:
$config['log_path'] = '/var/log/my_ci_app/';
注意结尾带斜杠,否则会被当作文件名前缀
路径不合法或不可写时,日志静默失败,不会报错,容易误判为“没生效”。
在代码中调用 log_message 记录内容
日志不会自动捕获所有错误(如语法错误、致命错误需靠 PHP error_log),需主动调用:
log_message('error', '数据库连接超时');log_message('debug', '用户ID: ' . $user_id);log_message('info', '订单创建成功');
日志文件按日期生成,如 log-2026-10-22.php,每行含时间戳、级别、消息,格式固定,无需额外配置。


















