UNPKG

strogger

Version:

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

52 lines • 2.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.stroggerWithFileTransport = exports.createFileTransportExample = void 0; const index_1 = require("../index"); // File Transport Example: Demonstrates a mock file transport with log rotation logic (no real file I/O). // Mock file transport with rotation logic const createFileTransportExample = (options = {}) => { let minLevel = options.level ?? index_1.LogLevel.INFO; const maxFileSize = options.maxFileSize ?? 10 * 1024 * 1024; const rotationInterval = options.rotationInterval ?? 24 * 60 * 60 * 1000; let currentSize = 0; let lastRotation = Date.now(); const shouldRotate = () => currentSize >= maxFileSize || Date.now() - lastRotation >= rotationInterval; const rotate = async () => { currentSize = 0; lastRotation = Date.now(); console.log("[MOCK FILE] Rotated log file"); }; const writeToFile = async (content) => { if (shouldRotate()) await rotate(); currentSize += content.length; console.log(`[MOCK FILE] Writing: ${content}`); }; return { log: async (entry) => { if (entry.level < minLevel) return; const logLine = JSON.stringify(entry); await writeToFile(logLine); }, setLevel: (level) => { minLevel = level; }, getLevel: () => minLevel, }; }; exports.createFileTransportExample = createFileTransportExample; // Minimal logger usage with mock file transport const env = (0, index_1.getEnvironment)(); const formatter = (0, index_1.createJsonFormatter)(); const fileTransport = (0, exports.createFileTransportExample)({ maxFileSize: 1024, // 1KB for demo rotationInterval: 10000, // 10s for demo }); exports.stroggerWithFileTransport = (0, index_1.createLogger)({ config: { serviceName: "file-rotation-example" }, transports: [fileTransport], formatter, env, }); //# sourceMappingURL=file-transport-example.js.map