README
Uol
Uol is a lightweight logging utility heavily based on Node.js streams.
Usage
Example
let uol = require('uol');
let logger = new uol.Logger({
levels: uol.Levels.Npm
});
let transport = logger
.use(uol.Layers.colorize())
.use(async (data, logger) => {
return `${data.date.toISOString()} ${data.colorize(`[${data.levelName.toUpperCase()}]`)} ${data.message}`;
});
.pipe(new uol.Transport.Concat())
.pipe(fs.createWriteStream('out.log'));
// returns an array of all messages up until now
let messages = await logger.concat();
Waiting for logs to be written
transport.on('finish', () => {
// done
});
logger.end();
Reference
Levels
Levels.Npm
– npm logging levels (error, warn, info, http, verbose, debug, silly)Levels.Syslog
– RFC5424 levels (emerg, alert, crit, error, warning, notice, info, debug)
Layers
new Layer.Base(handler, logger)
– Internal class used for chaining.Layer.colorize(styles)
– Adds acolorize()
method to each message object depending on its level and the provided styles. Built-in levels have corresponding built-in styles.Layer.filterLevel(minLevel)
– Removes messages with a level lower thanminLevel
.
Transports
new Transport.Console()
– Individually prints messages using methods of theconsole
object.new Transport.Concat()
– Joins all messages with an EOL character.