UNPKG

@untools/logger

Version:

An enhanced logger for JavaScript/TypeScript that handles DOM elements and circular references

52 lines (51 loc) 1.63 kB
"use strict"; 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();