@spot-meetings/backend-logger
Version:
Spot's backend logger module.
97 lines (69 loc) • 3.4 kB
Markdown
# -meetings/backend-logger
Simple console logger based on [Winston](https://github.com/winstonjs/winston).
## Installation
```sh
npm i -meetings/backend-logger
```
## Usage
### Environments
The environment will be taken from either the `RUNTIME_ENV` or `NODE_ENV` env variables, in that order. This allows you to have different build and running environments.
### Log Level
Service should run with `LOG_LEVEL` environment variable set:
`$ LOG_LEVEL=info node index.js`
Then, the logger will log anything that has lower priority than the `LOG_LEVEL` env variable:
Read more about [Winston's log levels](https://github.com/winstonjs/winston#using-logging-levels) to know what will be logged depending on your `LOG_LEVEL` env variable.
As this module is just a pre-configured instance of Winston, please refer to their [usage documentation](https://github.com/winstonjs/winston#usage) for more details.
### Log Output
To set different output types, set the `LOG_OUTPUT` env var to any of the following:
- `summary`: Just the log message with a timestamp and a label.
- `details`: The above plus detailed information about the log message in JSON format, pretty printed.
- `raw`: The raw, inline JSON message.
### Example
`./some/module.ts`:
```ts
import { createLogger } from '-meetings/backend-logger'
const logger = createLogger('my-service', '127.0.0.1', '1.0.1')
logger.debug('This is not necessary on production.', { hello: 'world' }) // Will not log
logger.info('This is very informational.')
logger.warn('Beware! You\'re about to do a thing.')
logger.error('IT FAILED!')
logger.error('IT FAILED! SEE DETAILS:', {
extra: 'Yeah, it was bad...',
error // error object. will log stack as well into stack log property
})
```
#### Sample Debug Log
```json
{
"level":"warn",
"message":"Consequatur ratione quas laudantium consequatur libero numquam molestiae autem vero.",
"environment":"test",
"type":"log",
"reporter":{
"version":"3.3.6",
"id":"Intelligent Metal Soap",
"ip":"104.145.61.188"
},
"timestamp":"2021-08-19T15:13:23.773Z"
}
```
#### Sample Error Log
```json
{
"level":"error",
"message":"Reprehenderit dolorem recusandae consequatur.",
"error":{
},
"stack":"Error: Reprehenderit dolorem recusandae consequatur.\\n at Context.<anonymous> (/home/my-service/test/src/index.spec.ts:183:14)\\n at callFn (/home/my-service/node_modules/mocha/lib/runnable.js:366:21)\\n at Test.Runnable.run (/home/my-service/node_modules/mocha/lib/runnable.js:354:5)\\n at Runner.runTest (/home/my-service/node_modules/mocha/lib/runner.js:680:10)\\n at /home/my-service/node_modules/mocha/lib/runner.js:803:12\\n at next (/home/my-service/node_modules/mocha/lib/runner.js:595:14)\\n at /home/my-service/node_modules/mocha/lib/runner.js:605:7\\n at next (/home/my-service/node_modules/mocha/lib/runner.js:488:14)\\n at Immediate._onImmediate (/home/my-service/node_modules/mocha/lib/runner.js:573:5)\\n at processImmediate (internal/timers.js:464:21)",
"environment":"test",
"type":"log",
"reporter":{
"version":"2.3.5",
"id":"Tasty Concrete Towels",
"ip":"240.132.132.180"
},
"timestamp":"2021-08-19T15:13:23.776Z"
}
```
## API Docs
Please visit [the documentation page](https://SpotMeetings.github.io/backend-logger/) for more information. -->