在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);
}
根據您的需求和日志格式,可以選擇最適合您的方法來提取關鍵數據。