Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Cet article explique comment configurer la journalisation dans les bibliothèques du Kit de développement logiciel (SDK) Azure pour JavaScript. L’activation de la journalisation vous aide à diagnostiquer les problèmes d’authentification, à résoudre les chaînes d’informations d’identification et à obtenir une visibilité sur les opérations du SDK.
Pour activer la journalisation, vous pouvez utiliser l’une des options ci-dessous :
- Définissez la variable d’environnement pour activer la
AZURE_LOG_LEVEL=verbosejournalisation. - Utilisez le
@azure/loggerpackage dans votre code source.
Les niveaux de journal valides incluent verbose, info, warninget error.
Note
Le code stockage Azure indiqué dans cet article suppose que la ressource de stockage a été configurée avec les rôles Microsoft Entra appropriés. En savoir plus : Autoriser l’accès aux objets blob à l’aide de l’ID Microsoft Entra.
Prerequisites
- Un abonnement Azure : Créez-en un gratuitement
- Node.js LTS
- Facultatif, un outil de développement tel qu’Azure CLI utilisé pour l’authentification dans un environnement de développement local. Pour créer le contexte nécessaire, connectez-vous avec Azure CLI.
Activer la journalisation avec la variable d’environnement
Démarrez l’application avec la variable d’environnement pour un moyen simple d’activer la journalisation.
AZURE_LOG_LEVEL=verbose node index.js
Définir des variables d’environnement
Vous pouvez également ajouter des variables d’environnement à un .env fichier à la racine de votre projet. Créez un fichier nommé .env et ajoutez le contenu suivant.
AZURE_LOG_LEVEL=verbose
AZURE_CLIENT_ID=<YOUR_CLIENT_ID>
AZURE_STORAGE_ACCOUNT_NAME=<YOUR_STORAGE_ACCOUNT_NAME>
AZURE_STORAGE_CONTAINER_NAME=<YOUR_STORAGE_CONTAINER_NAME>
Activer la journalisation avec le package d’enregistreurs d’événements dans le code source
L’exemple de code suivant utilise le package @azure/enregistreur d’événements pour déboguer les bibliothèques clientes du Kit de développement logiciel (SDK) Azure.
Configurer la journalisation pour des services spécifiques
Outre la définition d’un niveau de journal global, vous pouvez configurer différents niveaux de journal pour des services Azure spécifiques directement dans votre code :
// Import service-specific setLogLevel functions
import { setLogLevel as setIdentityLogLevel } from "@azure/identity";
import { setLogLevel as setStorageLogLevel } from "@azure/storage-blob";
// Set different log levels for different services
setIdentityLogLevel("verbose"); // Detailed logs for identity operations
setStorageLogLevel("warning"); // Only warnings and errors for storage operations
Cette approche vous donne un contrôle précis sur la journalisation détaillée lors de l’utilisation de plusieurs services Azure dans la même application.
Créez
index.jsavec le code suivant.import { ChainedTokenCredential, ManagedIdentityCredential, AzureCliCredential } from "@azure/identity"; import { BlobServiceClient } from "@azure/storage-blob"; import { AzureLogger, setLogLevel } from "@azure/logger"; // Check required environment variables if (!process.env.AZURE_STORAGE_ACCOUNT_NAME) { throw new Error("AZURE_STORAGE_ACCOUNT_NAME environment variable is required"); } if (!process.env.AZURE_STORAGE_CONTAINER_NAME) { throw new Error("AZURE_STORAGE_CONTAINER_NAME environment variable is required"); } // Client ID is optional and only used in production environments // No need to check for its existence // Turn on debugging for all Azure SDKs setLogLevel("verbose"); // Configure the logger to use console. AzureLogger.log = (...args)=> { console.log(...args); }; const credential = new ChainedTokenCredential( new ManagedIdentityCredential({ clientId: process.env.AZURE_CLIENT_ID }), new AzureCliCredential() ); const blobServiceClient = new BlobServiceClient( `https://${process.env.AZURE_STORAGE_ACCOUNT_NAME}.blob.core.windows.net`, credential ); // get container properties const containerClient = blobServiceClient.getContainerClient(process.env.AZURE_STORAGE_CONTAINER_NAME); async function main() { try { const properties = await containerClient.getProperties(); console.log(properties); } catch (err) { const error = err; console.error("Error retrieving container properties:", error.message); throw error; } } main().catch((err) => { console.error("Error running sample:", err.message); process.exit(1); });Créez le projet et installez les dépendances npm.
npm init -y npm pkg set type=module npm install @azure/identity @azure/storage-blob @azure/loggerConnectez-vous à votre abonnement Azure dans votre environnement local avec Azure CLI.
az loginExécutez l’application avec un fichier de variable d’environnement. L’option
--env-filea été introduite dans Node.js 20.6.0.node --env-file .env index.jsRecherchez les informations d’identification réussies dans la sortie.
ChainedTokenCredentialpermet à votre code de basculer en toute transparence entre les méthodes d’authentification, d’abord d’essayerManagedIdentityCredential(pour les environnements de production comme Azure App Service), puis de revenir àAzureCliCredential(pour le développement local), avec des journaux montrant les informations d’identification réussies.
Prerequisites
- Un abonnement Azure : Créez-en un gratuitement
- Node.js LTS
- TypeScript
- Facultatif, un outil d’authentification tel qu’Azure CLI utilisé pour l’authentification dans un environnement de développement local. Pour créer le contexte nécessaire, connectez-vous avec Azure CLI.
Activer la journalisation avec la variable d’environnement
Démarrez l’application avec la variable d’environnement pour un moyen simple d’activer la journalisation.
AZURE_LOG_LEVEL=verbose node index.js
Définir des variables d’environnement
Vous pouvez également ajouter des variables d’environnement à un .env fichier à la racine de votre projet. Créez un fichier nommé .env et ajoutez le contenu suivant.
AZURE_LOG_LEVEL=verbose
AZURE_CLIENT_ID=<YOUR_CLIENT_ID>
AZURE_STORAGE_ACCOUNT_NAME=<YOUR_STORAGE_ACCOUNT_NAME>
AZURE_STORAGE_CONTAINER_NAME=<YOUR_STORAGE_CONTAINER_NAME>
Activer la journalisation avec le package d’enregistreurs d’événements dans le code source
L’exemple de code suivant utilise le package @azure/enregistreur d’événements pour déboguer les bibliothèques clientes du Kit de développement logiciel (SDK) Azure.
Configurer la journalisation pour des services spécifiques
Outre la définition d’un niveau de journal global, vous pouvez configurer différents niveaux de journal pour des services Azure spécifiques directement dans votre code :
// Import service-specific setLogLevel functions
import { setLogLevel as setIdentityLogLevel } from "@azure/identity";
import { setLogLevel as setStorageLogLevel } from "@azure/storage-blob";
// Set different log levels for different services
setIdentityLogLevel("verbose"); // Detailed logs for identity operations
setStorageLogLevel("warning"); // Only warnings and errors for storage operations
Cette approche vous donne un contrôle précis sur la journalisation détaillée lors de l’utilisation de plusieurs services Azure dans la même application.
Créez
index.tsavec le code suivant.import { ChainedTokenCredential, ManagedIdentityCredential, AzureCliCredential } from "@azure/identity"; import { BlobServiceClient, ContainerGetPropertiesResponse } from "@azure/storage-blob"; import { AzureLogger, setLogLevel } from "@azure/logger"; // Check required environment variables if (!process.env.AZURE_STORAGE_ACCOUNT_NAME) { throw new Error("AZURE_STORAGE_ACCOUNT_NAME environment variable is required"); } if (!process.env.AZURE_STORAGE_CONTAINER_NAME) { throw new Error("AZURE_STORAGE_CONTAINER_NAME environment variable is required"); } // Client ID is optional and only used in production environments // No need to check for its existence // Turn on debugging for all Azure SDKs setLogLevel("verbose"); // Configure the logger to use console.log with TypeScript type safety AzureLogger.log = (...args: unknown[]): void => { console.log(...args); }; const credential = new ChainedTokenCredential( new ManagedIdentityCredential({ clientId: process.env.AZURE_CLIENT_ID }), new AzureCliCredential() ); const blobServiceClient = new BlobServiceClient( `https://${process.env.AZURE_STORAGE_ACCOUNT_NAME}.blob.core.windows.net`, credential ); // get container properties const containerClient = blobServiceClient.getContainerClient(process.env.AZURE_STORAGE_CONTAINER_NAME); async function main(): Promise<void> { try { const properties: ContainerGetPropertiesResponse = await containerClient.getProperties(); console.log(properties); } catch (err) { const error = err as Error; console.error("Error retrieving container properties:", error.message); throw error; } } main().catch((err: Error) => { console.error("Error running sample:", err.message); process.exit(1); });Créez le projet et installez les dépendances npm.
npm init -y npm pkg set type=module npm install @azure/identity @azure/storage-blob @types/node @azure/loggerConnectez-vous à votre abonnement Azure dans votre environnement local avec Azure CLI.
az loginGénérez l’application.
tscExécutez l’application avec un fichier de variable d’environnement. L’option
--env-filea été introduite dans Node.js 20.6.0.node --env-file .env index.jsRecherchez les informations d’identification réussies dans la sortie : le
ChainedTokenCredentialcode permet à votre code de basculer en toute transparence entre les méthodes d’authentification, d’abord d’essayerManagedIdentityCredential(pour les environnements de production comme Azure App Service), puis de revenir àAzureCliCredential(pour le développement local), avec des journaux indiquant les informations d’identification réussies.