strogger
Version:
📊 A modern structured logging library with functional programming, duck-typing, and comprehensive third-party integrations
77 lines • 2.67 kB
JavaScript
;
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