Nondeterministic Programming Methodology
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    loganpublic

    Logan

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

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

    Example

    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')
     
    hello('world');

    Usage

    var logan = require('logan');

    set

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

    logan.set({
      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!!!
    logan.set({
      omg: ['OMG : % !!!', 'red . . red']
    });

    create

    Returns a logging function.

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

    compile

    Returns a function which returns a string when called.

    var info = logan.compile('info : %', 'yellow');
    console.log(info('some text'));

    Syntax

    • % 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 green = logan.create('some long green string', 'green green green green');
     
    // using {} you can write
    var green = logan.create('{some long green string}', 'green');

    Configuration

    If you want to suppress all output, during tests for example, just set silent to true.

    logan.set({'foo', ['foo', 'red']});
    logan.silent = true;
    logan.foo(); // No output
    logan.silent = false;
    logan.foo(): // will output 'foo'

    About the name

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

    More

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

    Keywords

    none

    install

    npm i logan

    Downloadsweekly downloads

    342

    version

    0.0.2

    license

    none

    repository

    githubgithub

    last publish

    collaborators

    • avatar