next-logs
v1.4.2
Published
lightning fast, local server and client side logger for NextJS, NodeJS and JS Applications and Servers
Downloads
30
Maintainers
Readme
next-logs
lightning fast, local server and client side logger for NextJS, NodeJS and JS Applications and Servers.
Install
npm install --save next-logs
Or
yarn add next-logs
Logs are written under /tmp/
in the project directory:
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