@rdfc/sds-storage-writer-ts
Version:
An RDF-Connect processor to write SDS streams into a given storage system
36 lines (35 loc) • 1.28 kB
JavaScript
import winston, { format } from "winston";
const PROCESSOR_NAME = "sds-storage-writer-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, }) => `${timestamp} {${PROCESSOR_NAME}} [${labelInner}] ${levelInner}: ${message}`)),
transports: [consoleTransport],
});
}