@ozmap/logger
Version:
DevOZ logger module.
34 lines (33 loc) • 1.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.json = void 0;
const Helpers_1 = require("../util/Helpers");
/**
* Formatting method for JSON output.
*
* @param logger The underlying logging client.
* @param tag Tag to mark logged output.
* @returns The logging method.
*/
function json(logger, tag) {
const now = (0, Helpers_1.datetime)();
const paint = (0, Helpers_1.colorized)();
return async (level, ...args) => {
const data = {};
for (let i = 0; i < args.length; ++i) {
data[i] = (0, Helpers_1.normalize)(args[i]);
}
try {
logger.log(paint[level](JSON.stringify({ ...now(), level, tag, data }, (0, Helpers_1.getCircularReplacer)())));
}
catch (e) {
logger.log(JSON.stringify({
...now(),
level,
tag,
data: '[OZLogger internal] - Unable to serialize log data'
}));
}
};
}
exports.json = json;