lightning fast, local server and client side logger for NextJS, NodeJS and JS Applications and Servers.
npm install --save next-logs
Or
yarn add next-logs
// /pages/api/logger/[log].js
import NextLogs from "next-logs";
export default NextLogs();
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 />
)
};
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);
}
}
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.
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:
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.
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
.
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 |
MIT © BossBele