1.0.1 • Published 5 years ago

logiks v1.0.1

Weekly downloads
2
License
MIT
Repository
github
Last release
5 years ago

Logiks 📝 Build Status

Simple colored logger module with levels of logging and semantic output.

const logger = new Logiks({
    level: 'debug',
    colors: true,
});

logger.error('System', 'Component', 'Message')

> 2017-11-30 20:03:35 [System] [Component] Message

Signature semantics

Logger can take up to 4 different positional arguments-groupings:

logger.error(
    system: string,
    component: string',
    subCategory: string,
    message: string',
)

Note that message argument will appear anyway and if nth argument missed it means that n-1th argu,ent is message argument. Let assume we have code like bellow:

logger.special('Payments started');

logger.info('API', 'Payments', 'Performing payments');
/* ...*/
const response = {status: '200', confirmationHash:'d8e8fca2dc0f896fd7cb4cb'};
logger.info.json('API', 'Payments', 'v3.2', 'Payments was performed', response);

The output will be:

2018-09-02 02:55:27 Payments started!
2018-09-02 02:01:12 [API] [Payments] Performing payments
2018-09-02 02:01:39 [API] [Payments] (v3.2) Payments was performed
2018-09-02 02:01:39 ───┬────────────────────────────────────────────────────────────────────────
2018-09-02 02:01:39 0  │ {
2018-09-02 02:01:39 1  │   "status": "200",
2018-09-02 02:01:39 2  │   "confirmationHash": "d8e8fca2dc0f896fd7cb4cb"
2018-09-02 02:01:39 3  │ }
2018-09-02 02:01:39 ───┴────────────────────────────────────────────────────────────────────────

Groups

You can create logger instance already with grouping curried with: 1. In configuration.Look at config groupings. 2. With methods .withSystem, .withComponent and .withSubcat.

Config

Levels

Levels are prioritized entities to separate log messages by semantic. You can cover yout code with logging different depth and if you want to run your app on production mode you will not see debug log level. These are default log levels of Logiks:

  • silly: chalk.white
  • debug: chalk.green
  • info: chalk.magenta
  • warning: chalk.yellow
  • error: chalk.red
  • special: chalk.cyan.underline
  • critical: chalk.red.underline.bold

JSON

Every level logging function has .json property.

logger.warning.json('API', 'Payments', 'v3.2', 'Health check failed', {"reward":128.23,"instances":2,"availableApis":[{"host":"127.0.0.1","port":8888},{"host":"127.0.0.1","port":8889}],"healthCheck":false})

Will produce:

2018-09-01 10:58:16 [API] [Payments] (v3.2) Health check failed
2018-09-01 10:58:16 ───┬───────────────────────────────────────────────────────────────────
2018-09-01 10:58:16 0  │ {
2018-09-01 10:58:16 1  │   "reward": 128.23,
2018-09-01 10:58:16 2  │   "instances": 2,
2018-09-01 10:58:16 3  │   "availableApis": [
2018-09-01 10:58:16 4  │     { "host": "127.0.0.1", "port": 8888 },
2018-09-01 10:58:16 5  │     { "host": "127.0.0.1", "port": 8889 }
2018-09-01 10:58:16 6  │   ],
2018-09-01 10:58:16 7  │   "healthCheck": false
2018-09-01 10:58:16 8  │ }
2018-09-01 10:58:16 ───┴───────────────────────────────────────────────────────────────────