1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-22 01:47:00 +01:00
metamask-extension/app/scripts/lib/createLoggerMiddleware.js
Mark Stacey 20f654a348
Reduce logging in production builds (#20694)
Our logger middleware can be quite noisy in production, logging all RPC
requests. It has been updated to have more condensed logs in production
builds, but preserving the existing logging for development builds.
2023-09-04 10:35:23 -02:30

36 lines
919 B
JavaScript

import log from 'loglevel';
/**
* Returns a middleware that logs RPC activity. Logging is detailed in
* development builds, but more limited in production builds.
*
* @param {{ origin: string }} opts - The middleware options
* @returns {Function}
*/
export default function createLoggerMiddleware(opts) {
return function loggerMiddleware(
/** @type {any} */ req,
/** @type {any} */ res,
/** @type {Function} */ next,
) {
next((/** @type {Function} */ cb) => {
if (res.error) {
log.debug('Error in RPC response:\n', res);
}
if (req.isMetamaskInternal) {
return;
}
if (process.env.METAMASK_DEBUG) {
log.info(`RPC (${opts.origin}):`, req, '->', res);
} else {
log.info(
`RPC (${opts.origin}): ${req.method} -> ${
res.error ? 'error' : 'success'
}`,
);
}
cb();
});
};
}