@zlattice/lattice-js
Version:
Lattice blockchain TypeScript SDK with dual module support (CJS + ESM)
45 lines • 1.39 kB
JavaScript
import pino from 'pino';
// Default options
const defaultOptions = {
level: process.env.LOG_LEVEL || "info", // trace, debug, info, warn, error, fatal
timestamp: pino.stdTimeFunctions.isoTime,
formatters: {
level: (label) => ({ level: label })
}
};
// Singleton logger instance
let logger = pino(defaultOptions, pino.transport({
target: "@jvddavid/pino-rotating-file",
options: {
path: "./logs",
pattern: "log-%Y-%M-%d-%N.log",
maxSize: 1024 * 1024 * 10,
sync: false,
fsync: false,
append: true,
mkdir: true
}
}));
// Initialize or reconfigure logger
export function configureLogger(options) {
logger = pino({ ...defaultOptions, ...options });
return logger;
}
// Get current logger instance
export function getLogger() {
return logger;
}
// Shortcut logging methods
export const log = {
trace: (msg, ...args) => logger.trace(msg, ...args),
debug: (msg, ...args) => logger.debug(msg, ...args),
info: (msg, ...args) => logger.info(msg, ...args),
warn: (msg, ...args) => logger.warn(msg, ...args),
error: (msg, ...args) => logger.error(msg, ...args),
fatal: (msg, ...args) => logger.fatal(msg, ...args)
};
// Create child logger (supports context)
export function createChildLogger(context) {
return logger.child(context);
}
//# sourceMappingURL=logger.js.map