我有一个.log文件,它只是称为store_data.log
的对象行:
{"name": "Fred", "id": 31323, "favorited": false}
{"name": "Chris", "id": 33123, "favorited": true}
{"name": "Mike", "id": 33223, "favorited": true}
有一个名为store_data.json
的对应文件,其中包含日志文件路径:
{
"log_path": "/intua/store_data.log"
}
在我的JS文件中,我想创建一个函数,该函数采用路径并遍历日志信息,但是由于日志文件不是我知道如何使用的格式,因此我不确定从哪里开始。
答案 0 :(得分:2)
首先读取文件,用'\ n'分割,然后反复解析。
const fs = require('fs');
const config = require('store_data.json'); // load config,
const logPath = config.log_path;
(async() => {
const data = await fs.readFileSync(logPath, 'utf-8');
const logs = data.split('\n');
Array.from(logs).forEach(logString => {
const log = JSON.parse(logString);
console.log(log); // Your log here.
})
})();
顺便说一句,如果您的日志文件很大,则以readline或stream为佳。
答案 1 :(得分:1)
<script>
var store_data_json_path = '/path/to/store_data.json'; //your store_data.json location
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('GET', store_data_json_path, false); //this will access the store_data.json data
xmlhttp.send();
var store_data_json = JSON.parse(xmlhttp.responseText);
var store_data_log_path;
store_data_log_path = store_data_json.log_path; //this will retrieve log_path from store_data.json
var xmlhttp2 = new XMLHttpRequest();
xmlhttp2.open('GET', store_data_log_path, false); //this will access the store_data.log data
xmlhttp2.send();
var store_data_log_text = "[" + xmlhttp2.responseText + "]"; //this will add brackets that will make your string a valid json format
store_data_log_text = store_data_log_text.replace(/}/g, "},"); //will replace all } with }, to make it a valid JSON
store_data_log_text = store_data_log_text.replace(/,([^,]*)$/,"$1"); //will remove the last instance of , to make it a valid json
var store_data_log = JSON.parse(store_data_log_text); //we will convert the string to JSON
for(i in store_data_log) { //we will iterate to store_data.log
console.log(store_data_log[i].name);
console.log(store_data_log[i].id);
console.log(store_data_log[i].favorited);
}
</script>