strogger
Version:
š A modern structured logging library with functional programming, duck-typing, and comprehensive third-party integrations
85 lines ⢠3.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.runBrandedAPIExamples = exports.demonstrateMixedUsage = exports.demonstrateAPIComparison = exports.demonstrateBrandedAPI = void 0;
// Branded API Example: Demonstrates using Strogger's branded function names
const index_1 = require("../index");
// Example 1: Basic Branded API Usage
const demonstrateBrandedAPI = () => {
const env = (0, index_1.getEnvironment)();
const formatter = (0, index_1.createJsonFormatter)();
const consoleTransport = (0, index_1.createStroggerConsoleTransport)({
formatter,
level: index_1.LogLevel.DEBUG,
});
const dataDogTransport = (0, index_1.createStroggerDataDogTransport)({
level: index_1.LogLevel.INFO,
serviceName: "branded-api-example",
tags: ["env:dev", "team:backend"],
});
const strogger = (0, index_1.createStrogger)({
config: {
serviceName: "branded-api-demo",
stage: env.stage,
},
transports: [consoleTransport, dataDogTransport],
formatter,
env,
});
console.log("=== Branded API Usage ===\n");
strogger.info("Application started with branded API");
strogger.debug("Debug message using branded functions");
strogger.warn("Warning message with brand consistency");
strogger.error("Error message", { userId: "user-123" });
return strogger;
};
exports.demonstrateBrandedAPI = demonstrateBrandedAPI;
// Example 2: Branded vs Conventional Comparison
const demonstrateAPIComparison = () => {
console.log("\n=== Branded vs Conventional API ===\n");
console.log("Both approaches work identically:");
console.log("- createLogger() === createStrogger()");
console.log("- createConsoleTransport() === createStroggerConsoleTransport()");
console.log("- createDataDogTransport() === createStroggerDataDogTransport()");
};
exports.demonstrateAPIComparison = demonstrateAPIComparison;
// Example 3: Mixed Branded and Conventional
const demonstrateMixedUsage = () => {
const env = (0, index_1.getEnvironment)();
const formatter = (0, index_1.createJsonFormatter)();
const mixedStrogger = (0, index_1.createLogger)({
config: { serviceName: "mixed-usage-demo" },
transports: [
(0, index_1.createStroggerConsoleTransport)({ formatter }),
(0, index_1.createStroggerDataDogTransport)({ level: index_1.LogLevel.INFO }),
],
formatter,
env,
});
console.log("\n=== Mixed Branded and Conventional ===\n");
mixedStrogger.info("Mixed approach - conventional createLogger with branded transports");
};
exports.demonstrateMixedUsage = demonstrateMixedUsage;
// Run all branded API examples
const runBrandedAPIExamples = () => {
console.log("šØ Running Branded API Examples\n");
try {
(0, exports.demonstrateBrandedAPI)();
(0, exports.demonstrateAPIComparison)();
(0, exports.demonstrateMixedUsage)();
console.log("\nā
All branded API examples completed!");
console.log("\nš” Benefits of Branded API:");
console.log(" ⢠Clear brand ownership");
console.log(" ⢠Consistent naming convention");
console.log(" ⢠Easy to identify Strogger functions");
console.log(" ⢠No breaking changes - conventional API still works");
}
catch (error) {
console.error("ā Error running branded API examples:", error);
}
};
exports.runBrandedAPIExamples = runBrandedAPIExamples;
// Only run examples if this file is executed directly
if (require.main === module) {
(0, exports.runBrandedAPIExamples)();
}
//# sourceMappingURL=branded-api-example.js.map