ubuntu

Ubuntu Node.js日志中如何追踪用户行为

小樊
39
2025-10-09 10:31:39
栏目: 编程语言

Ubuntu Node.js日志中追踪用户行为的方法

在Ubuntu环境下,通过Node.js追踪用户行为需围绕日志记录-存储-解析-分析的流程展开,以下是具体步骤及工具推荐:

1. 选择合适的日志库

Node.js生态中有多个成熟的日志库,可根据需求选择:

2. 配置日志库记录用户行为

winston为例,配置JSON格式日志(便于后续解析),并将日志输出到文件和控制台:

const winston = require('winston');
const logger = winston.createLogger({
  level: 'info',
  format: winston.format.json(), // 使用JSON格式
  transports: [
    new winston.transports.File({ filename: 'logs/error.log', level: 'error' }), // 错误日志单独存储
    new winston.transports.File({ filename: 'logs/combined.log' }), // 所有日志合并
    ...(process.env.NODE_ENV !== 'production' ? [new winston.transports.Console({ format: winston.format.simple() })] : []) // 开发环境输出到控制台
  ]
});

记录用户行为时,需包含用户ID、操作类型、时间戳等关键信息(如登录、访问页面、API调用):

// 用户登录日志
app.post('/login', (req, res) => {
  const { username, userId } = req.body;
  logger.info({ userId, action: 'login', timestamp: new Date().toISOString() }, 'User logged in');
  res.send('Login successful');
});

// 页面访问日志
app.get('/home', (req, res) => {
  const userId = req.headers['x-user-id']; // 从请求头获取用户ID(需提前认证)
  logger.info({ userId, action: 'visit', path: '/home', timestamp: new Date().toISOString() }, 'User visited home page');
  res.send('Welcome to home page');
});

3. 存储日志(集中化管理)

4. 解析日志(提取有用信息)

5. 分析与可视化用户行为

注意事项

0
看了该问题的人还看了