Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo explica como configurar o log em bibliotecas do SDK do Azure para JavaScript. Habilitar o registro em log ajuda você a diagnosticar problemas de autenticação, solucionar problemas de cadeias de credenciais e obter visibilidade das operações do SDK.
Para ativar o registro em log, você pode usar qualquer uma das opções abaixo:
- Defina a variável de ambiente
AZURE_LOG_LEVEL=verbosepara habilitar o logging. - Use o pacote
@azure/loggerno código-fonte.
Os níveis de log válidos incluem verbose, infoe warningerror.
Observação
O código do Armazenamento do Azure mostrado neste artigo pressupõe que o recurso de armazenamento foi configurado com as funções apropriadas do Microsoft Entra. Saiba mais: Autorizar o acesso a blobs usando o Microsoft Entra ID.
Pré-requisitos
- Uma assinatura do Azure: criar uma gratuitamente
- Node.js LTS
- Opcional, uma ferramenta de desenvolvedor como a CLI do Azure usada para autenticação em um ambiente de desenvolvimento local. Para criar o contexto necessário, entre com a CLI do Azure.
Habilitar o registro em log com variável de ambiente
Inicie o aplicativo com a variável de ambiente para uma maneira simples de habilitar o registro em log.
AZURE_LOG_LEVEL=verbose node index.js
Definir variáveis de ambiente
Você também pode adicionar variáveis de ambiente a um .env arquivo na raiz do projeto. Crie um arquivo nomeado .env e adicione o conteúdo a seguir.
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>
Habilitar o log com o pacote de registro no código-fonte
O exemplo de código a seguir usa o pacote @azure/logger para depurar as bibliotecas de clientes do SDK do Azure.
Configurar o registro em log para determinados serviços
Além de definir um nível de log global, você pode configurar diferentes níveis de log para serviços específicos do Azure diretamente em seu código:
// 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
Essa abordagem fornece controle granular sobre o nível de detalhamento dos logs ao trabalhar com vários serviços do Azure no mesmo aplicativo.
Crie
index.jscom o código a seguir.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); });Crie o projeto e instale as dependências do npm.
npm init -y npm pkg set type=module npm install @azure/identity @azure/storage-blob @azure/loggerEntre em sua assinatura do Azure em seu ambiente local com a CLI do Azure.
az loginExecute o aplicativo com um arquivo de variável de ambiente. A
--env-fileopção foi introduzida no Node.js 20.6.0.node --env-file .env index.jsLocalize a credencial bem-sucedida na saída.
ChainedTokenCredentialpermite que seu código alterne perfeitamente entre métodos de autenticação, primeiro tentandoManagedIdentityCredential(para ambientes de produção como o Serviço de Aplicativo do Azure) e, em seguida, voltando paraAzureCliCredential(para desenvolvimento local), com logs mostrando qual credencial foi bem-sucedida.
Pré-requisitos
- Uma assinatura do Azure: criar uma gratuitamente
- Node.js LTS
- TypeScript
- Opcional, uma ferramenta de autenticação como a CLI do Azure usada para autenticação em um ambiente de desenvolvimento local. Para criar o contexto necessário, entre com a CLI do Azure.
Habilitar o registro em log com variável de ambiente
Inicie o aplicativo com a variável de ambiente para uma maneira simples de habilitar o registro em log.
AZURE_LOG_LEVEL=verbose node index.js
Definir variáveis de ambiente
Você também pode adicionar variáveis de ambiente a um .env arquivo na raiz do projeto. Crie um arquivo nomeado .env e adicione o conteúdo a seguir.
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>
Habilitar o log com o pacote de registro no código-fonte
O exemplo de código a seguir usa o pacote @azure/logger para depurar as bibliotecas de clientes do SDK do Azure.
Configurar o registro em log para determinados serviços
Além de definir um nível de log global, você pode configurar diferentes níveis de log para serviços específicos do Azure diretamente em seu código:
// 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
Essa abordagem fornece controle granular sobre o nível de detalhamento dos logs ao trabalhar com vários serviços do Azure no mesmo aplicativo.
Crie
index.tscom o código a seguir.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); });Crie o projeto e instale as dependências do npm.
npm init -y npm pkg set type=module npm install @azure/identity @azure/storage-blob @types/node @azure/loggerEntre em sua assinatura do Azure em seu ambiente local com a CLI do Azure.
az loginCompile o aplicativo.
tscExecute o aplicativo com um arquivo de variável de ambiente. A
--env-fileopção foi introduzida no Node.js 20.6.0.node --env-file .env index.jsEncontre a credencial bem-sucedida na saída - O
ChainedTokenCredentialpermite que seu código alterne perfeitamente entre métodos de autenticação, primeiro tentandoManagedIdentityCredential(para ambientes de produção, como o Serviço de Aplicativos do Azure), e depois caindo paraAzureCliCredential(para desenvolvimento local), com os logs mostrando qual credencial foi bem-sucedida.