next-logs

1.4.2 • Public • Published

next-logs

lightning fast, local server and client side logger for NextJS, NodeJS and JS Applications and Servers.

NPM JavaScript Style Guide

Install

npm install --save next-logs

Or

yarn add next-logs

Logs are written under /tmp/ in the project directory:

Logs Screenshot

Usage - Logging

1. Add API in /pages/api/logger/[log].js

// /pages/api/logger/[log].js
import NextLogs from "next-logs";

export default NextLogs();

2. Client Side

The client side API uses API routes hence it works in both: client and server side.

// /pages/*.js
import log from "next-logs/react";

export default Page() {
  useEffect(() => {
    log.info("Created our super logger!", {
      name: "next-logs"
    });
    log.debug("Created our super logger!", {
      name: "next-logs"
    });
    log.warn("Created our super logger!", {
      name: "next-logs"
    });
    log.error("Created our super logger!", {
      name: "next-logs"
    });
  },[]);

  return (
    <div />
  )
};

3. Server Side

Next logs ships with a server side API that makes logging more efficient.

// /pages/api/auth.js || /middleware.js
import logger from "next-logs/node";

async function handler(req, res) {
  const { method } = req;

  logger.info("Deleting user with attributes:", {
    id: '1'
  });

  logger.debug("Deleting user with attributes:", {
    id: '1'
  });

  logger.warn("Deleting user with attributes:", {
    id: '1'
  });

  logger.error("Deleting user with attributes:", {
    id: '1'
  });

  try {
    switch (method) {
      case 'DELETE':
        // delete user
        break;
      default:
        res.setHeader('Allow', ['DELETE']);
        res.status(405).end(`Method ${method} Not Allowed`);
    }
    // send result
    return res.status(200).json({});
  } catch (error) {
    return res.status(500).json(error);
  }
}

Monitoring & Debugging

You can view logs by type through your domain/api/logger/{type}. Type of logs include info, debug, warn and error. You can also build your own log viewers through the same API that returns log text. A next-logs logs dashboard is currently in development.

Logs directory/location

By default, logs are saved in the /tmp directory. Because Vercel and most systems allow saving files under /tmp directory; hence prevents conflicts that may lead to failures.

This configuration can be edited using the LOGGER_DIR environment variable:

logs will be saved in the ./logs directory
LOGGER_DIR=logs

When self-hosting a NextJS project, it is advised to change the logs location from the default 'tmp' for better control of logs.

NextJS Middleware

While using nextJS middleware in API routes, make sure that your middleware does not block requests at /api/logger/ routes. This may lead to errors and malfunctioning while using next-logs.

logger (server) and log (client) API

Methods Explanation
info logs the information your program is working as expected.
debug used to find the reason in case your program is not working as expected or an exception has occurred.
warn situations that are unexpected, but the code can continue the work
error Error/failure logs

License

MIT © BossBele

Package Sidebar

Install

npm i next-logs

Weekly Downloads

20

Version

1.4.2

License

MIT

Unpacked Size

80.4 kB

Total Files

19

Last publish

Collaborators

  • bossbele