aleung
11/2/2016 - 11:30 AM

Merge consul agent logs which are fetched by Ansible

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);
        }
    }
});