这篇文章涵盖了后端(Node.js)应用程序的一些记录实践。
-
避免将唯一标识符(例如,用户ID)放入消息中。唯一的ID将产生许多具有相同上下文的不同消息。将其用作消息参数。
-
为消息使用适当的日志级别。有多个日志级别
- 信息 - 应用程序行为,不要记录每个步骤
- 错误 - 应用程序处理失败,需要修复的东西
- 调试 - 故障排除所需的其他日志
- 警告 - 发生了意外的事情(例如,第三方API失败)
- 致命 - 应用程序崩溃,需要尽快修复
不要在生产上使用调试日志。将日志级别作为环境变量。
-
流登录到JSON格式的标准输出,因此记录聚合器(例如,灰色,)可以收集并充分解析它们
-
避免记录任何凭据,例如密码,验证令牌等。
-
使用像pino的可配置记录器
const pino = require('pino');
const logger = pino({
level: process.env.LOG_LEVEL || 'info',
redact: {
paths: ['token'],
remove: true,
},
});
logger.info({ someId: 'id' }, 'Started the app...');
logger.debug({ data: 'some data useful for debugging' }, 'Sending the request...');