Initial commit but with files this time
This commit is contained in:
commit
db1ccadf9b
32
main.mjs
Normal file
32
main.mjs
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
import { createReadStream } from 'fs';
|
||||||
|
import { createInterface } from 'node:readline';
|
||||||
|
|
||||||
|
const fileToRead = process.argv[2];
|
||||||
|
|
||||||
|
// https://nodejs.org/api/readline.html#readline_example_read_file_stream_line_by_line
|
||||||
|
|
||||||
|
// TEST LOG LINE
|
||||||
|
// The logs are read line by line, and aren't put through the JS parser (aren't parsed as JS source).
|
||||||
|
// As such, for testing String.raw is indicated
|
||||||
|
const testLine = String.raw `2023-09-28T03:16:24.580872000Z {"log":"52.88.91.78 - - [28/Sep/2023:03:16:23 +0000] \"GET /api/v2/account/details HTTP/1.1\" 200 1006 \"-\" \"go-tfe\"","component":"nginx"}'`
|
||||||
|
|
||||||
|
async function processLineByLine(filename) {
|
||||||
|
const fileStream = createReadStream(filename);
|
||||||
|
|
||||||
|
const rl = createInterface({
|
||||||
|
input: fileStream,
|
||||||
|
crlfDelay: Infinity,
|
||||||
|
});
|
||||||
|
|
||||||
|
for await (const line of rl) {
|
||||||
|
console.log(JSON.parse(getLineJSON(line).log));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getLineJSON(line) {
|
||||||
|
return line.split(/ (?=\{)/)[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
// processLineByLine(fileToRead);
|
||||||
|
|
||||||
|
console.log(await getLineJSON(testLine));
|
Loading…
Reference in a new issue