Coder Social home page Coder Social logo

kartik1998 / omnia-logger Goto Github PK

View Code? Open in Web Editor NEW
9.0 2.0 0.0 87 KB

An easily integratable logging library for nodejs for verbose request and app logging.

Home Page: https://www.npmjs.com/package/omnia-logger

License: MIT License

JavaScript 100.00%
nodejs logging logging-library request-logger

omnia-logger's Introduction

logger

An easy to integrate NodeJS library for easily setting up logging for an express app.

omnia-logger

omnia-logger

Request Logger

  • Generates request, response logs writes a file with those logs.
  • Generates a request id for each request session which is visible in app logs. (Read section below on app logger)

Usage

const { requestLogger } = require('omnia-logger');
const app = require('express')();
requestLogger(app, 'product-name', { filename: '/path/to/request.log' });
  • If you don't pass in a file name request logs are written in /var/log/omnia/requests directory by default. In that case ensure that you run your application with root permission i.e. use sudo before starting the application.
  • Sample request log will look something like:
{"meta":{"req":{"url":"/","headers":{"host":"localhost:8080","user-agent":"curl/7.64.1","accept":"*/*"},"method":"GET","httpVersion":"1.1","originalUrl":"/","query":{}},"res":{"body":{"id":"1628002145706-24bf4c89-eaff-4bf3-ad90-a6747e4cc8e8"}},"responseTime":0},"level":"info","message":"HTTP GET /"}
  • requestLogger logs each request by default. logged keys are: ip, id, headers and body.

App Logger

  • provides a variety of log levels i.e.:
FATAL: 'fatal',
ERROR: 'error',
WARN: 'warn',
TRACE: 'trace',
INFO: 'info',
DEBUG: 'debug',
  • It's singleton in nature hence needs to be initialized only once and can be used like const logger = require('omnia-logger').appLogger; in other files.

Usage

const { appLogger, requestLogger } = require('omnia-logger');
const app = require('express')();

const logger = new appLogger('product-name', 'path/to/app_log.log');
requestLogger(app, 'product-name', { filename: '/path/to/req_log.log' });
app.get('/', (req, res) => {
  logger.log(logger.LOG_LEVELS.INFO, 'successfull api call');
  logger.info('successfull api call'); // info, warn, error, debug, trace
  return res.json({ id: req.id });
});

app.listen(8080, () => console.log('listening on', 8080));
  • Sample app log will look like:
[2021-05-04T17:30:37.560Z] [INFO] [apac-logger] [Users-MacBook-Air.local] [20.2.0] [1628002145706-24bf4c89-eaff-4bf3-ad90-a6747e4cc8e8] successfull api call
  • App log format:
[DATE_ISO_FORMAT][LOG_LEVEL][PRODUCT_NAME][OS_HOSTNAME][OS_RELEASE][REQUEST_ID] LOG_MESSAGE

omnia-logger's People

Contributors

kartik1998 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.