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。對于大規?;蜷L期日志,建議使用專業日志管理工具:
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錯誤日志,從快速定位到深入排查,滿足不同場景的需求。