在Ubuntu系統中追蹤JS(Node.js)請求流程的第一步,是確保應用具備完善的日志記錄能力。常用工具包括內置console模塊、Winston(結構化日志)、Morgan(HTTP請求專用)、Bunyan(JSON格式日志)等。
console.log記錄請求的基本信息(如時間、方法、URL)。例如:app.use((req, res, next) => {
console.log(`[${new Date().toISOString()}] ${req.method} ${req.url}`);
next();
});
const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.combine(winston.format.timestamp(), winston.format.json()),
transports: [
new winston.transports.Console(),
new winston.transports.File({ filename: 'combined.log' }),
new winston.transports.File({ filename: 'error.log', level: 'error' })
]
});
app.use((req, res, next) => {
logger.info({ method: req.method, url: req.url, headers: req.headers });
next();
});
const morgan = require('morgan');
app.use(morgan(':method :url :status :res[content-length] - :response-time ms'));
以上配置完成后,應用會將請求流程信息輸出到終端或日志文件中。
Ubuntu系統提供了多種工具查看JS應用的日志,覆蓋實時監控、歷史檢索等場景:
pm2或systemctl啟動),可使用journalctl查看服務日志。例如:# 查看所有系統日志
journalctl
# 實時查看特定JS服務(如名為"my-node-app"的服務)的日志
journalctl -u my-node-app -f
combined.log),可使用tail -f實時監控新日志。例如:tail -f /path/to/your/app/combined.log
pm2 logs查看應用的實時日志(包括請求流程信息)。例如:pm2 logs my-app # 查看名為"my-app"的進程日志
pm2 logs all # 查看所有PM2管理的進程日志
這些工具能幫助你快速獲取JS應用的日志輸出,追蹤請求的實時流程。
若需追蹤前端JS發起的請求(如Ajax、Fetch),可使用瀏覽器開發人員工具:
F12或右鍵選擇“檢查”,進入“開發者工具”。console.log輸出,可在“控制臺”中查看,輔助排查請求流程中的問題。對于生產環境,建議使用集中化日志管理工具,實現日志的統一收集、存儲、搜索和可視化:
elasticsearch傳輸插件將日志發送到Elasticsearch,再通過Kibana創建儀表盤追蹤請求流程。通過以上方法,你可以在Ubuntu系統中高效追蹤JS應用的請求流程,快速定位問題根源。