UNPKG

@azure/monitor-opentelemetry

Version:
131 lines 4.8 kB
"use strict"; // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. Object.defineProperty(exports, "__esModule", { value: true }); exports.Logger = void 0; const logger_1 = require("@azure/logger"); const api_1 = require("@opentelemetry/api"); const diagFileConsoleLogger_js_1 = require("./diagFileConsoleLogger.js"); class Logger { static getInstance() { if (!Logger.instance) { Logger.instance = new Logger(); } return Logger.instance; } constructor() { this.azureLogger = (0, logger_1.createClientLogger)("@azure/monitor-opentelemetry"); this.openTelemetryLogger = api_1.diag.createComponentLogger({ namespace: "@azure/monitor-opentelemetry", }); this.logToOpenTelemetry = true; this.logToAzureLogger = false; const otelLogLevelEnv = process.env.APPLICATIONINSIGHTS_INSTRUMENTATION_LOGGING_LEVEL || process.env.OTEL_LOG_LEVEL; this.diagLevel = api_1.DiagLogLevel.WARN; // Default switch (otelLogLevelEnv) { case "ALL": this.diagLevel = api_1.DiagLogLevel.ALL; break; case "DEBUG": this.diagLevel = api_1.DiagLogLevel.DEBUG; break; case "ERROR": this.diagLevel = api_1.DiagLogLevel.ERROR; break; case "INFO": this.diagLevel = api_1.DiagLogLevel.INFO; break; case "NONE": this.diagLevel = api_1.DiagLogLevel.NONE; break; case "VERBOSE": this.diagLevel = api_1.DiagLogLevel.VERBOSE; break; case "WARN": this.diagLevel = api_1.DiagLogLevel.WARN; break; } // Set OpenTelemetry Logger const fileConsoleLogger = new diagFileConsoleLogger_js_1.DiagFileConsoleLogger(); api_1.diag.setLogger(fileConsoleLogger, { logLevel: this.diagLevel, suppressOverrideMessage: true, }); const azureLogLevelEnv = process.env.APPLICATIONINSIGHTS_INSTRUMENTATION_LOGGING_LEVEL; switch (azureLogLevelEnv) { // Application Insights levels case "VERBOSE": (0, logger_1.setLogLevel)("verbose"); break; case "INFO": (0, logger_1.setLogLevel)("info"); break; case "WARN": (0, logger_1.setLogLevel)("warning"); break; case "ERROR": (0, logger_1.setLogLevel)("error"); break; default: (0, logger_1.setLogLevel)(process.env.AZURE_LOG_LEVEL || "warning"); break; } // Override Azure logger logger_1.AzureLogger.log = (...args) => { fileConsoleLogger.logMessage(...args); }; } // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types error(message, ...args) { if (this.logToAzureLogger) { this.azureLogger.error(message, args); } if (this.logToOpenTelemetry) { this.openTelemetryLogger.error(message, args); } } // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types warn(message, ...args) { if (this.logToAzureLogger) { this.azureLogger.warning(message, args); } if (this.logToOpenTelemetry) { this.openTelemetryLogger.warn(message, args); } } // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types info(message, ...args) { if (this.logToAzureLogger) { this.azureLogger.info(message, args); } if (this.logToOpenTelemetry) { this.openTelemetryLogger.info(message, args); } } // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types debug(message, ...args) { if (this.logToAzureLogger) { this.azureLogger.verbose(message, args); } if (this.logToOpenTelemetry) { this.openTelemetryLogger.debug(message, args); } } // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types verbose(message, ...args) { if (this.logToAzureLogger) { this.azureLogger.verbose(message, args); } if (this.logToOpenTelemetry) { this.openTelemetryLogger.verbose(message, args); } } setLogToAzureLogger(value) { this.logToAzureLogger = value; } setLogToOpenTelemetry(value) { this.logToOpenTelemetry = value; } } exports.Logger = Logger; //# sourceMappingURL=logger.js.map