@mondaydotcomorg/atp-runtime
Version:
Runtime SDK injected into sandbox for Agent Tool Protocol
167 lines • 4.1 kB
JavaScript
import pino from 'pino';
let logger = null;
/**
* Initializes the logger with configuration
*/
export function initializeLogger(config) {
const pinoLevel = config?.level === 'none' ? 'silent' : (config?.level ?? 'info');
const options = {
level: pinoLevel,
timestamp: pino.stdTimeFunctions.isoTime,
formatters: {
level: (label) => {
return { level: label };
},
},
redact: {
paths: config?.redact ?? ['apiKey', 'password', '*.apiKey', '*.password', 'authorization'],
censor: '[REDACTED]',
},
};
if (config?.pretty) {
logger = pino({
...options,
transport: {
target: 'pino-pretty',
options: {
colorize: true,
translateTime: 'SYS:standard',
ignore: 'pid,hostname',
},
},
});
}
else if (config?.destination && config.destination !== 'stdout') {
logger = pino(options, pino.destination(config.destination));
}
else {
logger = pino(options);
}
}
/**
* Gets or initializes the logger
*/
function getLogger() {
if (!logger) {
initializeLogger({ level: 'info', pretty: false });
}
return logger;
}
export const log = {
/**
* Logs an informational message
*/
info(message, data) {
const l = getLogger();
if (data) {
l.info(data, message);
}
else {
l.info(message);
}
},
/**
* Logs a warning message
*/
warn(message, data) {
const l = getLogger();
if (data) {
l.warn(data, message);
}
else {
l.warn(message);
}
},
/**
* Logs an error message
*/
error(message, data) {
const l = getLogger();
if (data) {
l.error(data, message);
}
else {
l.error(message);
}
},
/**
* Logs a debug message
*/
debug(message, data) {
const l = getLogger();
if (data) {
l.debug(data, message);
}
else {
l.debug(message);
}
},
/**
* Logs a fatal error message
*/
fatal(message, data) {
const l = getLogger();
if (data) {
l.fatal(data, message);
}
else {
l.fatal(message);
}
},
/**
* Creates a child logger with additional context
*/
child(bindings) {
const childLogger = getLogger().child(bindings);
return {
info: (message, data) => {
if (data) {
childLogger.info(data, message);
}
else {
childLogger.info(message);
}
},
warn: (message, data) => {
if (data) {
childLogger.warn(data, message);
}
else {
childLogger.warn(message);
}
},
error: (message, data) => {
if (data) {
childLogger.error(data, message);
}
else {
childLogger.error(message);
}
},
debug: (message, data) => {
if (data) {
childLogger.debug(data, message);
}
else {
childLogger.debug(message);
}
},
fatal: (message, data) => {
if (data) {
childLogger.fatal(data, message);
}
else {
childLogger.fatal(message);
}
},
child: log.child,
};
},
};
/**
* Shuts down the logger (for cleanup in tests)
*/
export function shutdownLogger() {
logger = null;
}
//# sourceMappingURL=index.js.map