Permalink
Cannot retrieve contributors at this time
98 lines (98 sloc)
3.16 KB
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
codeql-action/node_modules/@azure/logger/dist-esm/src/index.js
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Copyright (c) Microsoft Corporation. | |
// Licensed under the MIT license. | |
import debug from "./debug"; | |
const registeredLoggers = new Set(); | |
const logLevelFromEnv = (typeof process !== "undefined" && process.env && process.env.AZURE_LOG_LEVEL) || undefined; | |
let azureLogLevel; | |
/** | |
* The AzureLogger provides a mechanism for overriding where logs are output to. | |
* By default, logs are sent to stderr. | |
* Override the `log` method to redirect logs to another location. | |
*/ | |
export const AzureLogger = debug("azure"); | |
AzureLogger.log = (...args) => { | |
debug.log(...args); | |
}; | |
const AZURE_LOG_LEVELS = ["verbose", "info", "warning", "error"]; | |
if (logLevelFromEnv) { | |
// avoid calling setLogLevel because we don't want a mis-set environment variable to crash | |
if (isAzureLogLevel(logLevelFromEnv)) { | |
setLogLevel(logLevelFromEnv); | |
} | |
else { | |
console.error(`AZURE_LOG_LEVEL set to unknown log level '${logLevelFromEnv}'; logging is not enabled. Acceptable values: ${AZURE_LOG_LEVELS.join(", ")}.`); | |
} | |
} | |
/** | |
* Immediately enables logging at the specified log level. If no level is specified, logging is disabled. | |
* @param level - The log level to enable for logging. | |
* Options from most verbose to least verbose are: | |
* - verbose | |
* - info | |
* - warning | |
* - error | |
*/ | |
export function setLogLevel(level) { | |
if (level && !isAzureLogLevel(level)) { | |
throw new Error(`Unknown log level '${level}'. Acceptable values: ${AZURE_LOG_LEVELS.join(",")}`); | |
} | |
azureLogLevel = level; | |
const enabledNamespaces = []; | |
for (const logger of registeredLoggers) { | |
if (shouldEnable(logger)) { | |
enabledNamespaces.push(logger.namespace); | |
} | |
} | |
debug.enable(enabledNamespaces.join(",")); | |
} | |
/** | |
* Retrieves the currently specified log level. | |
*/ | |
export function getLogLevel() { | |
return azureLogLevel; | |
} | |
const levelMap = { | |
verbose: 400, | |
info: 300, | |
warning: 200, | |
error: 100, | |
}; | |
/** | |
* Creates a logger for use by the Azure SDKs that inherits from `AzureLogger`. | |
* @param namespace - The name of the SDK package. | |
* @hidden | |
*/ | |
export function createClientLogger(namespace) { | |
const clientRootLogger = AzureLogger.extend(namespace); | |
patchLogMethod(AzureLogger, clientRootLogger); | |
return { | |
error: createLogger(clientRootLogger, "error"), | |
warning: createLogger(clientRootLogger, "warning"), | |
info: createLogger(clientRootLogger, "info"), | |
verbose: createLogger(clientRootLogger, "verbose"), | |
}; | |
} | |
function patchLogMethod(parent, child) { | |
child.log = (...args) => { | |
parent.log(...args); | |
}; | |
} | |
function createLogger(parent, level) { | |
const logger = Object.assign(parent.extend(level), { | |
level, | |
}); | |
patchLogMethod(parent, logger); | |
if (shouldEnable(logger)) { | |
const enabledNamespaces = debug.disable(); | |
debug.enable(enabledNamespaces + "," + logger.namespace); | |
} | |
registeredLoggers.add(logger); | |
return logger; | |
} | |
function shouldEnable(logger) { | |
return Boolean(azureLogLevel && levelMap[logger.level] <= levelMap[azureLogLevel]); | |
} | |
function isAzureLogLevel(logLevel) { | |
return AZURE_LOG_LEVELS.includes(logLevel); | |
} | |
//# sourceMappingURL=index.js.map |