UNPKG

@spot-meetings/backend-logger

Version:
97 lines (69 loc) 3.4 kB
# @spot-meetings/backend-logger Simple console logger based on [Winston](https://github.com/winstonjs/winston). ## Installation ```sh 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](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 '@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 ```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. -->