UNPKG

strogger

Version:

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

77 lines • 2.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.stroggerWithForbiddenKeys = exports.stroggerWithAdvancedFeatures = exports.batchedTransport = exports.stroggerWithEnrichment = exports.stroggerWithSampling = void 0; const index_1 = require("../index"); const env = (0, index_1.getEnvironment)(); const formatter = (0, index_1.createJsonFormatter)(); // Sampling and Rate Limiting Example exports.stroggerWithSampling = (0, index_1.createLogger)({ config: { serviceName: "sampling-demo", stage: env.stage, samplingRate: 0.3, rateLimit: { maxLogsPerSecond: 10, burstSize: 5 }, }, transports: [(0, index_1.createConsoleTransport)()], formatter, env, }); // Log Enrichment Example // Note: enrichment is available for custom enrichment // const enrichment = createDefaultEnrichmentMiddleware( // "my-service", // env.stage, // "session-123", // ); exports.stroggerWithEnrichment = (0, index_1.createLogger)({ config: { serviceName: "enrichment-demo", stage: env.stage }, transports: [(0, index_1.createConsoleTransport)()], formatter, env, }); // Note: enrichedContext is available for custom enrichment // const enrichedContext = enrichment({ requestId: "req-999" }); // Log Batching Example const simpleTransport = { log: async (entry) => console.log(`[BATCHED] ${JSON.stringify(entry)}`), setLevel: (_level) => { }, getLevel: () => index_1.LogLevel.INFO, }; exports.batchedTransport = (0, index_1.createBatchedTransport)(simpleTransport, { maxSize: 5, maxWaitTime: 3000, maxBatchSize: 1024, }); // Filtering, Validation, Redaction, and Hooks Example const filter = (entry) => entry.level >= index_1.LogLevel.ERROR; const validate = (entry) => { if (!entry.message) throw new Error("Log message cannot be empty"); }; const redact = (entry) => ({ ...entry, message: "[REDACTED]" }); const hook = (entry) => console.log(`[HOOK] ${entry.message}`); exports.stroggerWithAdvancedFeatures = (0, index_1.createLogger)({ config: { serviceName: "advanced-demo", stage: env.stage, filter, validate, redact, hooks: [hook], }, transports: [(0, index_1.createConsoleTransport)()], formatter, env, }); // Forbidden Keys Example exports.stroggerWithForbiddenKeys = (0, index_1.createLogger)({ config: { serviceName: "forbidden-demo", forbiddenKeys: ["password", "apiKey", "secret"], forbiddenKeyAction: "redact", }, transports: [(0, index_1.createConsoleTransport)()], formatter, env, }); //# sourceMappingURL=advanced-features.js.map