Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan cara mengonfigurasi pengelogan di pustaka Azure SDK untuk JavaScript. Mengaktifkan pengelogan membantu Anda mendiagnosis masalah autentikasi, memecahkan masalah rantai kredensial, dan mendapatkan visibilitas ke dalam operasi SDK.
Untuk mengaktifkan pengelogan, Anda dapat menggunakan salah satu opsi di bawah ini:
- Atur
AZURE_LOG_LEVEL=verbosevariabel lingkungan untuk mengaktifkan pengelogan. -
@azure/loggerGunakan paket dalam kode sumber Anda.
Tingkat log yang valid meliputi verbose, , infowarning, dan error.
Nota
Kode Azure Storage yang ditampilkan dalam artikel ini mengasumsikan sumber daya penyimpanan telah dikonfigurasi dengan peran Microsoft Entra yang sesuai. Pelajari selengkapnya: Mengotorisasi akses ke blob menggunakan ID Microsoft Entra.
Prasyarat
- Langganan Azure: Buat langganan secara gratis
- Node.js LTS
- Opsional, alat pengembang seperti Azure CLI yang digunakan untuk autentikasi di lingkungan pengembangan lokal. Untuk membuat konteks yang diperlukan, masuk dengan Azure CLI.
Mengaktifkan pengelogan dengan variabel lingkungan
Mulai aplikasi dengan variabel lingkungan untuk cara sederhana untuk mengaktifkan pengelogan.
AZURE_LOG_LEVEL=verbose node index.js
Atur variabel lingkungan
Anda juga dapat menambahkan variabel lingkungan ke .env file di akar proyek Anda. Buat file bernama .env dan tambahkan konten berikut.
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>
Mengaktifkan pengelogan dengan paket pencatat dalam kode sumber
Sampel kode berikut menggunakan paket @azure/pencatat untuk men-debug pustaka klien Azure SDK.
Mengonfigurasi pengelogan untuk layanan tertentu
Selain mengatur tingkat log global, Anda dapat mengonfigurasi tingkat log yang berbeda untuk layanan Azure tertentu langsung dalam kode Anda:
// 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
Pendekatan ini memberi Anda kontrol halus atas verbositas pengelogan saat bekerja dengan beberapa layanan Azure dalam aplikasi yang sama.
Buat
index.jsdengan kode berikut.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); });Buat proyek dan instal dependensi npm.
npm init -y npm pkg set type=module npm install @azure/identity @azure/storage-blob @azure/loggerMasuk ke langganan Azure Anda di lingkungan lokal Anda dengan Azure CLI.
az loginJalankan aplikasi dengan file variabel lingkungan. Opsi
--env-filediperkenalkan di Node.js 20.6.0.node --env-file .env index.jsTemukan kredensial yang berhasil dalam output.
ChainedTokenCredentialmemungkinkan kode Anda beralih dengan lancar di antara metode autentikasi, pertama-tama mencobaManagedIdentityCredential(untuk lingkungan produksi seperti Azure App Service) dan kemudian kembali keAzureCliCredential(untuk pengembangan lokal), dengan log yang menunjukkan kredensial mana yang berhasil.
Prasyarat
- Langganan Azure: Buat langganan secara gratis
- Node.js LTS
- TypeScript
- Opsional, alat autentikasi seperti Azure CLI yang digunakan untuk autentikasi di lingkungan pengembangan lokal. Untuk membuat konteks yang diperlukan, masuk dengan Azure CLI.
Mengaktifkan pengelogan dengan variabel lingkungan
Mulai aplikasi dengan variabel lingkungan untuk cara sederhana untuk mengaktifkan pengelogan.
AZURE_LOG_LEVEL=verbose node index.js
Atur variabel lingkungan
Anda juga dapat menambahkan variabel lingkungan ke .env file di akar proyek Anda. Buat file bernama .env dan tambahkan konten berikut.
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>
Mengaktifkan pengelogan dengan paket pencatat dalam kode sumber
Sampel kode berikut menggunakan paket @azure/pencatat untuk men-debug pustaka klien Azure SDK.
Mengonfigurasi pengelogan untuk layanan tertentu
Selain mengatur tingkat log global, Anda dapat mengonfigurasi tingkat log yang berbeda untuk layanan Azure tertentu langsung dalam kode Anda:
// 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
Pendekatan ini memberi Anda kontrol halus atas verbositas pengelogan saat bekerja dengan beberapa layanan Azure dalam aplikasi yang sama.
Buat
index.tsdengan kode berikut.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); });Buat proyek dan instal dependensi npm.
npm init -y npm pkg set type=module npm install @azure/identity @azure/storage-blob @types/node @azure/loggerMasuk ke langganan Azure Anda di lingkungan lokal Anda dengan Azure CLI.
az loginBangun aplikasi.
tscJalankan aplikasi dengan file variabel lingkungan. Opsi
--env-filediperkenalkan di Node.js 20.6.0.node --env-file .env index.jsTemukan kredensial yang berhasil dalam output -
ChainedTokenCredentialmemungkinkan kode Anda beralih dengan mulus di antara metode autentikasi, pertama-tama mencobaManagedIdentityCredential(untuk lingkungan produksi seperti Azure App Service) lalu kembali keAzureCliCredential(untuk pengembangan lokal), dengan log yang menunjukkan kredensial mana yang berhasil.