Merge consul agent logs which are fetched by Ansible
#!/usr/bin/env node
"use strict";
const fs = require('fs');
const readline = require('readline');
const logLineRegexp = /\s+(.+?)\[(.+?)\](.*)/;
function processFile(file, host) {
const lineReader = readline.createInterface({
input: fs.createReadStream(file)
});
lineReader.on('line', (line) => {
const matches = line.match(logLineRegexp);
if (matches) {
console.log(matches[1], '|', host, '|', matches[2], '|', matches[3]);
}
});
}
const filenameRegexp = /agent-\d+\.\d+\.\d+\.(\d+)\.log/;
fs.readdir('.', (err, files) => {
for (let file of files) {
const matches = file.match(filenameRegexp);
if (matches) {
const host = matches[1];
processFile(file, host);
}
}
});