thinkphp在ubuntu中的日志如何查看与管理

ThinkPHP 在 Ubuntu 的日志查看与管理一 日志位置与目录结构默认情况下,应用日志位于项目的 runtime/log/ 目录;按日期(常见为年-月)分文件,例如 runtime/log/2025-12/ 下的 12.log。部分版本或配置还会生成 runtime/sql/ 目录用于记录 SQL 执行日志。若项目自定义了运行时目录,日志路径会随之变化。常用的目录常量包括:RUNTIME

ThinkPHP 在 Ubuntu 的日志查看与管理

一 日志位置与目录结构

  • 默认情况下,应用日志位于项目的 runtime/log/ 目录;按日期(常见为年-月)分文件,例如 runtime/log/2025-12/ 下的 12.log。部分版本或配置还会生成 runtime/sql/ 目录用于记录 SQL 执行日志。若项目自定义了运行时目录,日志路径会随之变化。常用的目录常量包括:RUNTIME_PATH(运行时目录,默认 ROOT_PATH.‘runtime/’)、LOG_PATH(日志目录,默认 RUNTIME_PATH.‘log/’)。示例路径:/var/www/your-app/runtime/log/2025-12/12.log。这些路径与常量便于你快速定位日志位置。

二 快速查看与检索

  • 实时查看当天日志(进入项目根目录后):tail -f runtime/log/$(date +%Y-%m)/$(date +%d).log
  • 查看本月日志:tail -f runtime/log/$(date +%Y-%m)/*.log
  • 按关键字过滤(如 error):grep -n --color=auto 'error' runtime/log/2025-12/*.log
  • 分页查看大文件:less runtime/log/2025-12/12.log(支持 /关键词 搜索,按 q 退出)
  • 查看文件末尾 N 行:tail -n 200 runtime/log/2025-12/12.log
  • 结合系统日志定位 Web/PHP 层错误(如 FPM 或 Apache):sudo tail -f /var/log/php*-fpm.logsudo tail -f /var/log/apache2/error.log;系统级实时日志可用 sudo journalctl -f。以上命令覆盖日常排查的高频场景。

三 日志级别与数据库 SQL 日志

  • 调整应用日志级别(仅记录错误):在配置中设置
    'log' => [
        'type'  => 'File',
        'path'  => '../runtime/log/',
        'level' => ['error'],
    ]
    

    常用级别包含 debug、info、notice、error,生产环境建议仅保留必要级别以减少磁盘占用与信息泄露风险。

  • 输出 SQL 日志到文件:在日志配置中开启 SQL 级别
    'log' => [    'type'  => 'File',    'path'  => LOG_PATH,    'level' => ['sql'],]

    开启后,SQL 执行信息会写入 runtime/log/(部分版本在 runtime/sql/)。

  • 在代码中获取 SQL(调试用):
    use think\Db;echo Db::getLastSql();$logs = Db::getQueryLog();print_r($logs);

    注意仅在调试环境使用,避免在生产环境输出敏感信息。

四 日志轮转与清理

  • 手动清理:定期归档或删除 runtime/log/ 下历史月份目录(如 2024-*.log),或压缩备份后再清理,避免占用过多磁盘空间。
  • 自动清理(按天):部分版本支持在日志配置中设置自动清理时间,例如
    'log' => [
        'type'      => 'file',
        'path'      => LOG_PATH,
        'clear_time' => 1, // 按天清理
    ]
    

    若你的版本无此配置项,可结合系统级 logrotate 或计划任务实现按天/按大小轮转与清理(示例:logrotate -f /etc/logrotate.conf)。

  • 权限与归属:日志文件通常由 PHP-FPM 进程用户创建(如 www-datanginx)。如出现无法写入,检查目录属主与权限,确保 PHP-FPM 运行用户对 runtime/ 及其子目录具备写权限。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1471105.html

(0)
派派
上一篇 2025-12-12
下一篇 2025-12-12

发表回复

登录后才能评论