UNPKG

strogger

Version:

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

56 lines • 2.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.loggerWithSimpleFormatter = exports.timedFunction = exports.performanceMonitor = exports.loggerWithCustomTransport = exports.strogger = void 0; // Functional Logger Usage Example: Demonstrates dependency injection, custom transport, performance monitor, and formatter duck-typing. const index_1 = require("../index"); // Basic functional logger with dependency injection 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: "my-service", stage: "dev" }, transports: [transport], formatter, env, }); exports.strogger = strogger; // Custom transport using duck-typing const customTransport = { log: (entry) => { console.log(`[CUSTOM] ${JSON.stringify(entry)}`); }, setLevel: (level) => { console.log(`Setting custom transport level to ${level}`); }, getLevel: () => index_1.LogLevel.INFO, }; const loggerWithCustomTransport = (0, index_1.createLogger)({ config: { serviceName: "service-with-custom-transport" }, transports: [customTransport], formatter, env, }); exports.loggerWithCustomTransport = loggerWithCustomTransport; // Performance monitoring example const performanceMonitor = (0, index_1.createPerformanceMonitor)(); exports.performanceMonitor = performanceMonitor; const timedFunction = async () => { const timer = performanceMonitor.startTimer("myFunction"); await new Promise((resolve) => setTimeout(resolve, 100)); const metrics = timer({ userId: "123", operation: "data-processing" }); console.log("Function completed:", metrics); return "result"; }; exports.timedFunction = timedFunction; // Formatter duck-typing example const simpleFormatter = { format: (entry) => `${entry.timestamp} [${entry.level}] ${entry.message}`, }; const loggerWithSimpleFormatter = (0, index_1.createLogger)({ config: { serviceName: "simple-formatter-service" }, transports: [(0, index_1.createConsoleTransport)({ formatter: simpleFormatter })], formatter: simpleFormatter, env, }); exports.loggerWithSimpleFormatter = loggerWithSimpleFormatter; //# sourceMappingURL=functional-usage.js.map