# strulo
[![CircleCI](https://circleci.com/gh/8select/strulo/tree/master.svg?style=svg)](https://circleci.com/gh/8select/strulo/tree/master)

[![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier)
[![](https://img.shields.io/npm/v/@8select/strulo.svg)](https://www.npmjs.com/package/@8select/strulo)
[![](https://img.shields.io/npm/dm/@8select/strulo.svg)](https://www.npmjs.com/package/@8select/strulo)
![module formats: cjs, esm](https://img.shields.io/badge/module%20formats-cjs%2C%20esm-green.svg)
![](/badges/coverage.svg?sanitize=true)

Log messages in a structured format

## Install
using NPM

`npm install --save @8select/strulo`

## How to use it
```js
const logger = require('@8select/strulo')
logger.debug('hello')
logger.info('hello from strulo')
logger.error('some error')
```

The DEBUG environment variable is used to enable these based on space or comma-delimited names. Here are some examples:

```sh
export DEBUG=DEBUG,ERROR,ALERT
```

displays only log messages with log level debug, error and alert

```sh
DEBUG {"message":"hello","level":"100","level_name":"DEBUG","time":1506502514498} +0ms

ERROR {"message":"some error","level":"400","level_name":"ERROR","time":1506502554430} +40s
```

# directory structure

```sh
+-- lib - "contains the lib files (ES5) + flow definitions"
|   +-- index.js - "which is compiled with Babel and stripped of types"
|   +-- index.js.flow - "which is the original file, with types left in it"
|   +-- info.js
|   +-- info.js.flow
|   +-- ...
+-- src - "contains the source files (ES.next)"
|   +-- index.js
|   +-- info.js
|   +-- ...
+-- test - "contains unit tests to related src structure
```
