将日志从“事后排查”升级为“事前预防+事中检测+事后取证”的闭环:在代码与运行期埋入关键事件的可观测性,借助结构化与集中化平台进行实时分析与告警,并通过严格的访问控制、加密与审计策略确保日志可信、可用且合规。这样可以在攻击链的早期(如暴力登录、权限变更、异常调用)及时阻断或溯源,显著降低风险暴露时间。
const winston = require('winston');
const morgan = require('morgan');
const logger = winston.createLogger({
level: 'info',
format: winston.format.combine(
winston.format.timestamp(),
winston.format.json()
),
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});
app.use(morgan('combined', {
stream: { write: msg => logger.info(msg.trim()) }
}));
上述做法能在不侵入业务主流程的前提下,稳定输出高质量安全事件数据。process.on('uncaughtException', (err) => {
logger.error('Uncaught Exception', { message: err.message, stack: err.stack });
process.exit(1);
});
process.on('unhandledRejection', (reason, promise) => {
logger.error('Unhandled Rejection', { reason, promise });
});
通过“限流 + 异常兜底 + 安全头 + HTTPS”,可在日志中形成可量化的异常信号,支撑快速处置。/var/log/nodejs/*.log {
daily
missingok
rotate 7
compress
notifempty
create 0640 root adm
}