logiks v1.0.1
Logiks 📝
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 n
th argument missed it means that n-1
th 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.whitedebug
: chalk.greeninfo
: chalk.magentawarning
: chalk.yellowerror
: chalk.redspecial
: chalk.cyan.underlinecritical
: 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 ───┴───────────────────────────────────────────────────────────────────