Mini template system for the console and colors


Logan is a mini template system for the console and colors.

It allows to cleanly separate content from style and create beautiful logging functions.

Let's say you want to write a logging function that says hello.

// Without Logan 
function hello(arg) {
  console.log('Hello'.bold.green + ' : ' + arg.cyan);
// With Logan 
var hello = logan.create('Hello : %', 'bold.green . cyan')

var logan = require('logan');

This is the most useful method of logan. It lets you define all your templates in one place.

  info: ['info : %', 'yellow'],
  warn: ['warn : %', 'orange'],
  omg : ['omg  : %', 'rainbow']
logan.info('some info');

Notice how easy it is to see what all your logging functions will output.

Also, with set your module users can easily theme logs:

// Overriding omg to be... more OMG!!! 
  omg: ['OMG : % !!!', 'red . . red']

Returns a logging function.

var info = logan.create('info : %', 'yellow');
info('some text');

Returns a function which returns a string when called.

var info = logan.compile('info : %', 'yellow');
console.log(info('some text'));
  • % is used for string replacement.
  • {} lets you define blocks.
  • . means default style.
  • styles can be chained (example: bold.underline.red).

{} usage:

// for example, instead of writing this: 
var foo = logan.create('some long green string', 'green green green green');
// using {} you can write 
var foo = logan.create('{some long green string}', 'green');

Since there's a templating engine called hogan and this one is about logging, it was called logan.

If you want to see how Logan can be used in another project, you can have a look at ShoutJS.