Laravel的日志文件默认存储在项目根目录下的storage/logs文件夹中,主要文件为laravel.log(框架默认日志)。若配置了自定义日志通道(如daily),还会生成对应日期的日志文件(如laravel-2025-10-16.log)。
通过Ubuntu终端进入项目根目录后,可使用以下命令查看日志:
tail -f storage/logs/laravel.log(按Ctrl+C退出实时模式);tail -n 100 storage/logs/laravel.log(替换100为所需行数);grep 'error' storage/logs/laravel.log(查找包含“error”的日志行,区分大小写);less storage/logs/laravel.log(按空格翻页,q退出)。Laravel支持8种日志级别(从高到低):emergency、alert、critical、error、warning、notice、info、debug。若需查看特定级别的日志,可通过grep命令过滤:
grep -E 'emergency|alert|critical|error' storage/logs/laravel.log;grep 'warning' storage/logs/laravel.log。为避免日志文件占用过多磁盘空间,可使用logrotate工具自动轮转日志。步骤如下:
sudo apt-get install logrotate;sudo nano /etc/logrotate.d/laravel;/var/www/your_project为项目实际路径):/var/www/your_project/storage/logs/*.log {
daily # 每天轮转一次
missingok # 若日志不存在也不报错
rotate 14 # 保留最近14天的日志
compress # 压缩旧日志(.gz格式)
notifempty # 日志为空时不轮转
create 0640 www-data adm # 新日志文件权限(根据项目用户调整,如www-data为Apache/Nginx用户)
}
sudo logrotate -d /etc/logrotate.d/laravel(模拟运行,不实际修改文件);sudo logrotate -f /etc/logrotate.d/laravel。rm命令删除指定天数前的日志,例如删除14天前的日志:find /var/www/your_project/storage/logs -type f -name "*.log" -mtime +14 -exec rm -f {} \;;crontab中,设置每天凌晨1点执行:0 1 * * * find /var/www/your_project/storage/logs -type f -name "*.log" -mtime +14 -exec rm -f {} \;(通过crontab -e编辑定时任务)。grep -n 'error' storage/logs/laravel.log;/var/log/nginx/error.log),辅助定位问题。通过以上方法,可高效查看和管理Ubuntu系统中Laravel应用的日志,快速定位和解决应用问题。