@untools/logger
Version:
An enhanced logger for JavaScript/TypeScript that handles DOM elements and circular references
52 lines (51 loc) • 1.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const index_1 = require("../index");
async function demo() {
console.log("--- Logger Best Practices Demo ---\n");
// Set log level to DEBUG to see all logs
index_1.logger.setLogLevel(3); // LogLevel.DEBUG
// 1. Basic logging with premium colors
index_1.logger.info("Starting application...", { version: "1.0.0", mode: "demo" });
// 2. Child logger with request context (Wide Events pattern)
const requestLogger = index_1.logger.child({
_rid: "req_" + Math.random().toString(36).substring(7),
userId: "user_123",
path: "/api/checkout",
});
requestLogger.info("Incoming request");
// 3. Accumulating business context
requestLogger.addContext({
cartValue: 2499,
items: 3,
premium: true,
});
// 4. Logging a wide event at completion
try {
// Simulate work
await new Promise((resolve) => setTimeout(resolve, 100));
requestLogger.info({
outcome: "success",
duration_ms: 105,
status_code: 200,
});
}
catch (error) {
requestLogger.error("Process failed", error);
}
// 5. Deeply nested objects (Pretty Printing)
index_1.logger.debug("System State", {
memory: {
used: "124MB",
total: "16GB",
details: {
heap: "80MB",
external: "44MB",
},
},
flags: ["alpha", "beta", "gamma"],
active: true,
});
console.log("\n--- Demo Complete ---");
}
demo();