UNPKG

strogger

Version:

📊 A modern structured logging library with functional programming, duck-typing, and comprehensive third-party integrations

164 lines • 6.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.demonstrateManualGeneration = exports.demonstrateInstanceIdInContexts = exports.demonstrateMultipleInstances = exports.demonstrateCustomInstanceId = exports.demonstrateAutomaticInstanceId = void 0; // Logger Instance ID Example: Demonstrates unique identifier tracking through logger lifecycle. const index_1 = require("../index"); // Example 1: Automatic Instance ID Generation const demonstrateAutomaticInstanceId = () => { console.log("=== Automatic Instance ID Generation ===\n"); const env = (0, index_1.getEnvironment)(); const formatter = (0, index_1.createJsonFormatter)(); const transport = (0, index_1.createConsoleTransport)({ formatter, level: index_1.LogLevel.DEBUG, }); // Logger will automatically generate a unique instance ID const strogger = (0, index_1.createLogger)({ config: { serviceName: "auto-id-example", stage: "dev" }, transports: [transport], formatter, env, }); console.log("Generated Instance ID:", strogger.getInstanceId()); // All logs from this logger will include the same instance ID strogger.info("First log message", { requestId: "req-123" }); strogger.debug("Debug message", { userId: "user-456" }); strogger.error("Error message", { operation: "test" }, new Error("Test error")); return strogger; }; exports.demonstrateAutomaticInstanceId = demonstrateAutomaticInstanceId; // Example 2: Custom Instance ID const demonstrateCustomInstanceId = () => { console.log("\n=== Custom Instance ID ===\n"); const env = (0, index_1.getEnvironment)(); const formatter = (0, index_1.createJsonFormatter)(); const transport = (0, index_1.createConsoleTransport)({ formatter, level: index_1.LogLevel.DEBUG, }); // User provides their own instance ID const customInstanceId = "my-custom-logger-123"; const strogger = (0, index_1.createLogger)({ config: { serviceName: "custom-id-example", stage: "dev", instanceId: customInstanceId, }, transports: [transport], formatter, env, }); console.log("Custom Instance ID:", strogger.getInstanceId()); // All logs from this logger will include the custom instance ID strogger.info("Log with custom instance ID", { requestId: "req-456" }); strogger.warn("Warning with custom instance ID", { severity: "medium" }); return strogger; }; exports.demonstrateCustomInstanceId = demonstrateCustomInstanceId; // Example 3: Multiple Strogger Instances const demonstrateMultipleInstances = () => { console.log("\n=== Multiple Strogger Instances ===\n"); const env = (0, index_1.getEnvironment)(); const formatter = (0, index_1.createJsonFormatter)(); const transport = (0, index_1.createConsoleTransport)({ formatter, level: index_1.LogLevel.DEBUG, }); // Create multiple strogger instances const strogger1 = (0, index_1.createLogger)({ config: { serviceName: "multi-instance-1", stage: "dev" }, transports: [transport], formatter, env, }); const strogger2 = (0, index_1.createLogger)({ config: { serviceName: "multi-instance-2", stage: "dev" }, transports: [transport], formatter, env, }); const strogger3 = (0, index_1.createLogger)({ config: { serviceName: "multi-instance-3", stage: "dev", instanceId: "user-provided-id", }, transports: [transport], formatter, env, }); console.log("Strogger 1 Instance ID:", strogger1.getInstanceId()); console.log("Strogger 2 Instance ID:", strogger2.getInstanceId()); console.log("Strogger 3 Instance ID:", strogger3.getInstanceId()); // Each strogger has a unique instance ID strogger1.info("Message from strogger 1", { source: "strogger1" }); strogger2.info("Message from strogger 2", { source: "strogger2" }); strogger3.info("Message from strogger 3", { source: "strogger3" }); return { strogger1, strogger2, strogger3 }; }; exports.demonstrateMultipleInstances = demonstrateMultipleInstances; // Example 4: Instance ID in Different Contexts const demonstrateInstanceIdInContexts = () => { console.log("\n=== Instance ID in Different Contexts ===\n"); const env = (0, index_1.getEnvironment)(); const formatter = (0, index_1.createJsonFormatter)(); const transport = (0, index_1.createConsoleTransport)({ formatter, level: index_1.LogLevel.DEBUG, }); const strogger = (0, index_1.createLogger)({ config: { serviceName: "context-example", stage: "dev" }, transports: [transport], formatter, env, }); console.log("Strogger Instance ID:", strogger.getInstanceId()); // Instance ID is automatically included in all log contexts strogger.logFunctionStart("processOrder", { orderId: "order-123" }); strogger.logDatabaseOperation("SELECT", "users", { table: "users" }); strogger.logApiRequest("POST", "/api/orders", 201, { endpoint: "/api/orders" }); strogger.logFunctionEnd("processOrder", 150, { orderId: "order-123" }); return strogger; }; exports.demonstrateInstanceIdInContexts = demonstrateInstanceIdInContexts; // Example 5: Manual Instance ID Generation const demonstrateManualGeneration = () => { console.log("\n=== Manual Instance ID Generation ===\n"); // Generate instance IDs manually const instanceId1 = (0, index_1.generateLoggerInstanceId)(); const instanceId2 = (0, index_1.generateLoggerInstanceId)(); console.log("Manually generated ID 1:", instanceId1); console.log("Manually generated ID 2:", instanceId2); const env = (0, index_1.getEnvironment)(); const formatter = (0, index_1.createJsonFormatter)(); const transport = (0, index_1.createConsoleTransport)({ formatter, level: index_1.LogLevel.DEBUG, }); // Use manually generated IDs const strogger1 = (0, index_1.createLogger)({ config: { serviceName: "manual-id-1", stage: "dev", instanceId: instanceId1, }, transports: [transport], formatter, env, }); const strogger2 = (0, index_1.createLogger)({ config: { serviceName: "manual-id-2", stage: "dev", instanceId: instanceId2, }, transports: [transport], formatter, env, }); strogger1.info("Using manually generated ID 1"); strogger2.info("Using manually generated ID 2"); return { strogger1, strogger2 }; }; exports.demonstrateManualGeneration = demonstrateManualGeneration; //# sourceMappingURL=logger-instance-id-example.js.map