codeigniter 修改日志路径需配置 $config['log_path'] 为绝对路径(如 /var/www/myapp/logs/),确保目录存在且 web 用户有写权限,不可仅靠移动 logs 文件夹;日志文件默认存于 application/logs/log-yyyy-mm-dd.php,路径未配置则静默失败。

CodeIgniter 默认把日志文件存在 application/logs/ 目录下,文件名形如 log-2026-10-22.php。要改保存路径,关键在配置项 $config['log_path'],不是靠移动文件夹,而是通过代码指定新位置。
默认日志存放位置
只要开启日志功能($config['log_threshold'] > 0),CI 就会自动在 application/logs/ 下生成带日期的 PHP 文件。这个目录必须可写(如 Linux 下 chmod 755 或 777),否则日志写不进去,也不会报错,容易误以为没生效。
修改日志路径的两种方式
推荐用完整绝对路径,避免相对路径出错:
- 在
application/config/config.php中添加或修改这一行:$config['log_path'] = '/var/www/myapp/logs/';
注意末尾带斜杠,且确保该目录存在、Web 服务器用户(如 www-data)有写权限。 - 也可以用 PHP 动态生成路径,比如:
$config['log_path'] = FCPATH . 'storage/logs/';
其中FCPATH是 CI 定义的常量,指向 Web 根目录(即 index.php 所在目录)。
为什么不能只改文件夹名字或挪动 logs 目录
CI 不是靠读取目录是否存在来决定写哪,而是严格依赖 $config['log_path'] 的值。即使你把原 application/logs/ 改名或删掉,只要配置里没改,它仍会尝试往那个旧路径写——结果就是静默失败。所以改路径必须同步改配置,不能只靠文件系统操作。
额外提醒:权限和安全
日志文件含敏感信息(如 SQL 查询、请求参数、错误堆栈),绝不能放在 Web 可直接访问的路径下(比如放在 public/ 或 assets/ 里)。如果新路径在 Web 根目录外(如 /var/log/myci/),最安全;若必须放在项目内,至少加个 .htaccess 禁止访问(Apache)或 Nginx 配置 deny 规则。











