在 Linux 系统中,JavaScript(前端或 Node.js)的日志记录需要根据应用场景(浏览器端、服务端或混合应用)关注不同维度的信息。以下是关键分类和具体内容:
时间戳
YYYY-MM-DD HH:mm:ss.SSS
),带时区(如 UTC+8
)。2023-10-05 14:30:45.123 UTC+8
日志级别
DEBUG
、INFO
、WARN
、ERROR
、FATAL
。javascript
console.log('[INFO] User login succeeded');
请求上下文
[REQUEST_ID:abc123] GET /api/users | IP:192.168.1.1
错误堆栈
Error.stack
(包括异步调用链)。javascript
try { riskyOperation(); }
catch (err) { console.error('[ERROR]', err.stack); }
关键变量快照
PARAMS: {userId: 42, action: "delete"}
依赖服务状态
DB_QUERY_FAILED: code=ETIMEDOUT, query="SELECT * FROM users"
耗时监控
[PERF] /api/orders - 耗时 248ms
安全审计
[AUDIT] user=admin action=delete_file path=/confidential.txt
资源阈值告警
[WARN] 内存使用: 92% | HeapUsed: 1.4GB
JSON 格式
{
"timestamp": "2023-10-05T14:30:45.123Z",
"level": "ERROR",
"message": "DB connection failed",
"context": {
"requestId": "abc123",
"dbHost": "mysql-primary"
}
}
日志切割与归档
logrotate
或 pm2-logrotate
(Node.js)按天/大小分割日志。敏感信息过滤
bash
# 实时追踪 Node.js 日志
tail -f /var/log/node-app.log | grep -E 'ERROR|WARN'
DEBUG
,生产环境限 ERROR
以上)。640
,防止泄露。通过以上结构化日志策略,可快速定位问题,同时满足运维监控与安全合规需求。