@spot-meetings/backend-logger
v2.3.0
Published
Spot's backend logger module.
Downloads
515
Readme
@spot-meetings/backend-logger
Simple console logger based on Winston.
Installation
npm i @spot-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 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 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
:
import { createLogger } from '@spot-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
{
"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
{
"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 for more information. -->