Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek vysvětluje, jak nakonfigurovat protokolování v knihovnách sady Azure SDK pro JavaScript. Povolení protokolování pomáhá diagnostikovat problémy s ověřováním, řešit potíže s přihlašovacími údaji a získat přehled o operacích se sadou SDK.
Pokud chcete povolit protokolování, můžete použít některou z následujících možností:
- Nastavte proměnnou
AZURE_LOG_LEVEL=verboseprostředí tak, aby se zapnulo protokolování. - Použijte balíček ve zdrojovém
@azure/loggerkódu.
Mezi platné úrovně protokolu patří verbose, info, warninga error.
Poznámka:
Kód služby Azure Storage uvedený v tomto článku předpokládá, že prostředek úložiště je nakonfigurovaný s příslušnými rolemi Microsoft Entra. Další informace: Autorizace přístupu k objektům blob pomocí Microsoft Entra ID.
Požadavky
- Předplatné Azure: Vytvořte si ho zdarma.
- Node.js LTS
- Volitelný vývojářský nástroj, jako je Azure CLI , který se používá k ověřování v místním vývojovém prostředí. Pokud chcete vytvořit potřebný kontext, přihlaste se pomocí Azure CLI.
Povolení protokolování pomocí proměnné prostředí
Spusťte aplikaci s proměnnou prostředí, abyste mohli jednoduše povolit protokolování.
AZURE_LOG_LEVEL=verbose node index.js
Nastavení proměnných prostředí
Proměnné prostředí můžete také přidat do .env souboru v kořenovém adresáři projektu. Vytvořte soubor s názvem .env a přidejte následující obsah.
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>
Povolení protokolování pomocí balíčku protokolovacího nástroje ve zdrojovém kódu
Následující ukázka kódu používá balíček @azure/logger k ladění klientských knihoven sady Azure SDK.
Konfigurace protokolování pro konkrétní služby
Kromě nastavení globální úrovně protokolu můžete nakonfigurovat různé úrovně protokolů pro konkrétní služby Azure přímo ve vašem kódu:
// 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
Tento přístup poskytuje podrobnou kontrolu nad podrobnostmi protokolování při práci s více službami Azure ve stejné aplikaci.
Vytvořte
index.jspomocí následujícího kódu.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); });Vytvořte projekt a nainstalujte závislosti npm.
npm init -y npm pkg set type=module npm install @azure/identity @azure/storage-blob @azure/loggerPřihlaste se ke svému předplatnému Azure v místním prostředí pomocí Azure CLI.
az loginSpusťte aplikaci se souborem proměnné prostředí. Možnost
--env-filebyla zavedena v Node.js 20.6.0.node --env-file .env index.jsVe výstupu vyhledejte úspěšné přihlašovací údaje.
ChainedTokenCredentialumožňuje vašemu kódu bezproblémově přepínat mezi metodami ověřování, nejprve se pokusíteManagedIdentityCredential(pro produkční prostředí, jako je Azure App Service), a pak se vrátíte zpětAzureCliCredential(pro místní vývoj) s protokoly, které ukazují, které přihlašovací údaje byly úspěšné.
Požadavky
- Předplatné Azure: Vytvořte si ho zdarma.
- Node.js LTS
- TypeScript
- Nepovinný ověřovací nástroj, jako je Azure CLI , který se používá k ověřování v místním vývojovém prostředí. Pokud chcete vytvořit potřebný kontext, přihlaste se pomocí Azure CLI.
Povolení protokolování pomocí proměnné prostředí
Spusťte aplikaci s proměnnou prostředí, abyste mohli jednoduše povolit protokolování.
AZURE_LOG_LEVEL=verbose node index.js
Nastavení proměnných prostředí
Proměnné prostředí můžete také přidat do .env souboru v kořenovém adresáři projektu. Vytvořte soubor s názvem .env a přidejte následující obsah.
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>
Povolení protokolování pomocí balíčku protokolovacího nástroje ve zdrojovém kódu
Následující ukázka kódu používá balíček @azure/logger k ladění klientských knihoven sady Azure SDK.
Konfigurace protokolování pro konkrétní služby
Kromě nastavení globální úrovně protokolu můžete nakonfigurovat různé úrovně protokolů pro konkrétní služby Azure přímo ve vašem kódu:
// 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
Tento přístup poskytuje podrobnou kontrolu nad podrobnostmi protokolování při práci s více službami Azure ve stejné aplikaci.
Vytvořte
index.tspomocí následujícího kódu.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); });Vytvořte projekt a nainstalujte závislosti npm.
npm init -y npm pkg set type=module npm install @azure/identity @azure/storage-blob @types/node @azure/loggerPřihlaste se ke svému předplatnému Azure v místním prostředí pomocí Azure CLI.
az loginSestavte aplikaci.
tscSpusťte aplikaci se souborem proměnné prostředí. Možnost
--env-filebyla zavedena v Node.js 20.6.0.node --env-file .env index.jsVyhledejte ve výstupu úspěšné přihlašovací údaje –
ChainedTokenCredentialumožní vašemu kódu bezproblémově přepínat mezi metodami ověřování, nejprve se pokusíteManagedIdentityCredential(pro produkční prostředí, jako je Azure App Service), a pak se vrátíte doAzureCliCredential(pro místní vývoj) s protokoly, které ukazují, které přihlašovací údaje proběhly úspěšně.