# Apolitical Logger

Node.js module to expose Apolitical's logger service 

## Requirements

Requires the following to run:

- [node.js][node] 16.13.0+
- [yarn][yarn]

[node]: https://nodejs.org/en/download/
[yarn]: https://classic.yarnpkg.com/en/docs/install

## Installation

Install with `yarn`:

```sh
yarn add apolitical-logger
```

## Usage

First of all, include `apolitical-logger` module:

```
const apoliticalLogger = require('apolitical-logger');
```

The recommended way to use `apolitical-logger` is to create your own logger with the appropriate parameters:

```
const opts = { logLevel: 'info' };
const logger = apoliticalLogger(opts);

logger.info('Hello World!');
```

### The _where_ function

When debugging, it might be useful to also use the `where` function to track the location of your logs.

It accepts `filename` and `method` parameters, and it creates a child logger:

```
const opts = { logLevel: 'debug' };
const logger = apoliticalLogger(opts);

const childLogger = logger.where(__filename, 'debugging');
childLogger.debug('Accessed:', { count: 0 });
```

### The _labels_ object

And also, the labels allow you to keep extra info along the logger journey:

```
const opts = {
  labels: {
    name: 'apolitical-service',
    version: 'v1.0.0'
  }
};
const logger = apoliticalLogger(opts);
logger.info('Service Name');
```

## Logging levels

The supported logging levels are:

```
{
  error: 0,
  warn: 1,
  info: 2,
  debug: 3
}
```