在Node.js中,可以使用多种方法来提取日志中的关键数据。以下是一些建议:

[INFO] 2021-08-01 12:00:00 User logged in: user123,可以使用正则表达式/[INFO] d{4}-d{2}-d{2} d{2}:d{2}:d{2} User logged in: (w+)/来提取用户名。const log = '[INFO] 2021-08-01 12:00:00 User logged in: user123';const regex = /[INFO] d{4}-d{2}-d{2} d{2}:d{2}:d{2} User logged in: (w+)/;const match = log.match(regex);if (match) {const username = match[1];console.log('Extracted data:', username);}例如,使用winston库:
const winston = require('winston');const logger = winston.createLogger({format: winston.format.combine(winston.format.timestamp(),winston.format.printf(({ timestamp, level, message }) => {// 自定义解析逻辑if (message.startsWith('User logged in:')) {const username = message.split(' ')[3];console.log('Extracted data:', username);}return `${timestamp} ${level}: ${message}`;}))});logger.info('User logged in: user123');split、substring等)来提取关键数据。const log = 'INFO 2021-08-01 12:00:00 User logged in: user123';const parts = log.split(' ');const level = parts[0];const timestamp = parts[1] + ' ' + parts[2] + ' ' + parts[3];const message = parts.slice(4).join(' ');if (message.startsWith('User logged in:')) {const username = message.split(' ')[3];console.log('Extracted data:', username);}根据您的需求和日志格式,可以选择最适合您的方法来提取关键数据。
VibeCoding中的OpenSpec与Spec-Kit使用完整指南
Claude Code配置MCP指南:核心作用、安装教程与常见报错排查实用指南
git一次大小写目录名导致远程仓库出现两套代码的踩坑及解决实用指南
正则表达式从原理到实战全面学习小结
DeepSeek Harness官方桌面版下载与使用实测:下载、安装、避坑全流程实用指南
git push冲突怎么办?如何解决本地代码被覆盖的报错实用指南