@layr-labs/hourglass-performer
Version:
TypeScript SDK for building Hourglass AVS performers
42 lines • 1.6 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.logger = void 0;
exports.createLogger = createLogger;
// Logger utility for the Hourglass TypeScript SDK
const winston_1 = __importDefault(require("winston"));
/**
* Create a configured winston logger
*/
function createLogger(config = {}) {
const { debug = false, level = debug ? 'debug' : 'info', console = true, file } = config;
const transports = [];
// Console transport
if (console) {
transports.push(new winston_1.default.transports.Console({
format: winston_1.default.format.combine(winston_1.default.format.colorize(), winston_1.default.format.timestamp(), winston_1.default.format.printf(({ timestamp, level, message, ...meta }) => {
const metaStr = Object.keys(meta).length > 0 ? ` ${JSON.stringify(meta)}` : '';
return `${timestamp} [${level}]: ${message}${metaStr}`;
})),
}));
}
// File transport
if (file) {
transports.push(new winston_1.default.transports.File({
filename: file,
format: winston_1.default.format.combine(winston_1.default.format.timestamp(), winston_1.default.format.json()),
}));
}
return winston_1.default.createLogger({
level,
transports,
exitOnError: false,
});
}
/**
* Default logger instance
*/
exports.logger = createLogger();
//# sourceMappingURL=logger.js.map