JavaScript错误日志的位置取决于应用部署方式:
/var/log/目录(如系统日志、Node.js应用日志);/opt/your-app/logs/)或项目根目录下创建error.log、app.log等文件;journalctl(systemd管理工具)查看系统级JavaScript错误(如Node.js进程崩溃日志)。config.js、server.js中的日志路径设置)。Ubuntu的命令行工具适合处理纯文本或结构化日志,常见用法如下:
grep -i "ERROR" /path/to/app.log # 不区分大小写查找ERROR
grep "Uncaught TypeError" /path/to/app.log # 查找特定错误类型
awk '{print $1, $2, $5}' /path/to/app.log | sort | uniq -c # 提取前3列并统计重复项
sed -n '/ERROR/p' /path/to/app.log # 仅显示包含ERROR的行
sed 's/ERROR/!!ERROR!!/g' /path/to/app.log # 将ERROR替换为!!ERROR!!(突出显示)
这些工具适合简单日志分析,能快速定位错误模式。
若日志为JSON格式(如Node.js应用使用winston或bunyan生成的日志),可使用jq工具高效解析:
sudo apt-get install jq
jq '.error' /path/to/app.log;jq '{timestamp: .timestamp, error: .error.message, stack: .error.stack}' /path/to/app.log;jq '.error.type' /path/to/app.log | sort | uniq -c。对于大规模或长期日志,建议使用专业日志管理工具:
winston-elasticsearch将Node.js日志发送到Elasticsearch,再用Kibana创建仪表盘(如错误率趋势、Top错误类型)。pm2 start app.js启动应用,pm2 logs myapi实时查看错误日志,pm2 logs --lines 100查看最近100行。若JavaScript运行在浏览器中(如前端应用),可通过浏览器开发者工具直接查看错误:
F12或Ctrl+Shift+I(Mac:Cmd+Opt+I);Uncaught TypeError)、发生文件(如script.js:25)和堆栈跟踪;logrotate防止日志文件过大,配置示例(/etc/logrotate.d/your-app):/path/to/app.log {
daily
rotate 7
compress
missingok
notifempty
}
通过以上步骤,可系统性地分析Ubuntu下的JavaScript错误日志,从快速定位到深入排查,满足不同场景的需求。