tripitaka
Version:
A low dependency, no frills logger, designed to play nicely with tools like fluentd and Elasticsearch
21 lines (18 loc) • 577 B
JavaScript
const { EOL } = require('os');
const Level = require('../Level');
const DEFAULT_STREAMS = {
[Level.TRACE.name]: process.stdout,
[Level.DEBUG.name]: process.stdout,
[Level.INFO.name]: process.stdout,
[Level.WARN.name]: process.stderr,
[Level.ERROR.name]: process.stderr,
};
module.exports = (params = {}) => {
const { streams = DEFAULT_STREAMS, level: threshold = Level.TRACE } = params;
return ({ level, record }) => {
if (!level.satisfies(threshold)) return;
const stream = streams[level.name];
stream.write(record);
stream.write(EOL);
};
};