UNPKG

strogger

Version:

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

52 lines • 2.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.loggerWithCloudWatchTransport = exports.createCloudWatchTransportExample = void 0; const index_1 = require("../index"); // CloudWatch Transport Example: Demonstrates a mock CloudWatch transport with log rotation logic (no AWS SDK). const createCloudWatchTransportExample = (options = {}) => { let minLevel = options.level ?? index_1.LogLevel.INFO; const maxStreamSize = options.maxStreamSize ?? 45 * 1024 * 1024; const maxStreamAge = options.maxStreamAge ?? 23 * 60 * 60 * 1000; let currentSize = 0; let streamStartTime = Date.now(); const shouldRotate = () => currentSize >= maxStreamSize || Date.now() - streamStartTime >= maxStreamAge; const rotate = async () => { currentSize = 0; streamStartTime = Date.now(); console.log("[MOCK CW] Rotated log stream"); }; const sendToCloudWatch = async (content) => { if (shouldRotate()) await rotate(); currentSize += content.length; console.log(`[MOCK CW] Sending: ${content}`); }; return { log: async (entry) => { if (entry.level < minLevel) return; const logLine = JSON.stringify(entry); await sendToCloudWatch(logLine); }, setLevel: (level) => { minLevel = level; }, getLevel: () => minLevel, }; }; exports.createCloudWatchTransportExample = createCloudWatchTransportExample; // Minimal logger usage with mock CloudWatch transport const env = (0, index_1.getEnvironment)(); const formatter = (0, index_1.createJsonFormatter)(); const cloudWatchTransport = (0, exports.createCloudWatchTransportExample)({ maxStreamSize: 1024, // 1KB for demo maxStreamAge: 10000, // 10s for demo }); exports.loggerWithCloudWatchTransport = (0, index_1.createLogger)({ config: { serviceName: "cloudwatch-rotation-example" }, transports: [cloudWatchTransport], formatter, env, }); //# sourceMappingURL=cloudwatch-transport-example.js.map