@rdfc/http-utils-processor-ts
Version:
HTTP util functions to be used within RDF-Connect
35 lines (34 loc) • 1.3 kB
JavaScript
import winston, { format } from "winston";
const PROCESSOR_NAME = "http-utils-processor-ts";
const consoleTransport = new winston.transports.Console();
consoleTransport.level =
process.env.LOG_LEVEL ||
(process.env.DEBUG?.includes(PROCESSOR_NAME) || process.env.DEBUG === "*"
? "debug"
: "info");
const classLoggers = new WeakMap();
export function getLoggerFor(loggable) {
let logger;
if (typeof loggable === "string") {
logger = createLogger(loggable);
}
else {
const { constructor } = loggable;
if (classLoggers.has(loggable)) {
logger = classLoggers.get(loggable);
}
else {
logger = createLogger(constructor.name);
classLoggers.set(loggable, logger);
}
}
return logger;
}
function createLogger(label) {
return winston.createLogger({
format: format.combine(format.label({ label }), format.colorize(), format.timestamp(), format.metadata({
fillExcept: ["level", "timestamp", "label", "message"],
}), format.printf(({ level: levelInner, message, label: labelInner, timestamp, metadata: meta, }) => `${timestamp} {${PROCESSOR_NAME}} [${labelInner}] ${levelInner}: ${message}`)),
transports: [consoleTransport],
});
}