日志数据如下:
[2020-01-09 15:54:29.738] [INFO] txt - [logger-info][{"userid":10000, "nickname":"张三", "sex":0, "age":15}]
[2020-01-09 15:54:29.738] [INFO] txt - [logger-info][{"userid":10001, "nickname":"李四", "sex":1, "age":19}]
[2020-01-09 15:54:29.738] [INFO] txt - [logger-info][{"userid":10002, "nickname":"王五", "sex":0, "age":45}]
需要将日志数据提取出来,提取的数据格式如下:
{"userid":10000, "nickname":"张三", "sex":0, "age":15}
{"userid":10001, "nickname":"李四", "sex":1, "age":19}
{"userid":10002, "nickname":"王五", "sex":0, "age":45}
实现代码如下:
var fs = require('fs');
var xlsx = require('node-xlsx');
var content = fs.readFileSync("./data.txt", 'utf-8');
if (!content) {
return true;
}
//开始位置
var startIndex = 0;
//循环读取
while (1) {
try {
//首位置
var beginIndex = content.indexOf("[{\"userid\"", startIndex);
//结束位置
var endIndex = content.indexOf("}]", beginIndex);
//开始结束下标
if (beginIndex == -1 || endIndex == -1) {
break;
}
//截取的字符串
var stringTemp = content.substr(beginIndex, (endIndex - beginIndex) + 2);
//json数据
var data = JSON.parse(stringTemp);
//输出内容
console.log("data=%s",JSON.stringify(data));
//开始位置
startIndex += stringTemp.length;
} catch (e) {
console.log("dataFile is fail eror=%s", e.stack);
return false;
}
}
//输出内容
// data=[{"userid":10000,"nickname":"张三","sex":0,"age":15}]
// data=[{"userid":10001,"nickname":"李四","sex":1,"age":19}]
// data=[{"userid":10001,"nickname":"李四","sex":1,"age":19}]
// data=[{"userid":10002,"nickname":"王五","sex":0,"age":45}]
// data=[{"userid":10002,"nickname":"王五","sex":0,"age":45}]