Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede JavaScript için Azure SDK kitaplıklarında günlüğe kaydetmeyi yapılandırma işlemi açıklanmaktadır. Günlüğe kaydetmeyi etkinleştirmek, kimlik doğrulama sorunlarını tanılamanıza, kimlik bilgileri zincirlerini gidermenize ve SDK işlemlerine görünürlük kazanmanıza yardımcı olur.
Günlüğü etkinleştirmek için aşağıdaki seçeneklerden birini kullanabilirsiniz:
- Günlük kaydını etkinleştirmek için
AZURE_LOG_LEVEL=verboseortam değişkenini ayarlayın. -
@azure/loggerPaketi kaynak kodunuzda kullanın.
Geçerli günlük düzeyleri verbose, info, warning ve error düzeyleridir.
Uyarı
Bu makalede gösterilen Azure Depolama kodu, depolama kaynağının uygun Microsoft Entra rolleri ile yapılandırıldığını varsayar. Daha fazla bilgi edinin: Microsoft Entra Id kullanarak bloblara erişimi yetkilendirme.
Önkoşullar
- Azure aboneliği: Ücretsiz bir abonelik oluşturun
- Node.js LTS
- İsteğe bağlı olarak, yerel geliştirme ortamında kimlik doğrulaması için kullanılan Azure CLI gibi bir geliştirici aracı. Gerekli bağlamı oluşturmak için Azure CLI ile oturum açın.
Ortam değişkeniyle günlük kaydını etkinleştirin
Günlüğü etkinleştirmenin basit bir yolu için uygulamayı ortam değişkeniyle başlatın.
AZURE_LOG_LEVEL=verbose node index.js
Ortam değişkenlerini belirleme
Ayrıca, proje kökünüzdeki bir .env dosyaya ortam değişkenleri de ekleyebilirsiniz. adlı .env bir dosya oluşturun ve aşağıdaki içeriği ekleyin.
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>
Kaynak kodunda logger paketiyle günlüklemeyi etkinleştirme
Aşağıdaki kod örneği, Azure SDK istemci kitaplıklarında hata ayıklamak için @azure/logger paketini kullanır.
Belirli hizmetler için günlük kaydını yapılandırma
Genel günlük düzeyini ayarlamaya ek olarak, belirli Azure hizmetleri için farklı günlük düzeylerini doğrudan kodunuz içinde yapılandırabilirsiniz:
// 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
Bu yaklaşım, aynı uygulamada birden çok Azure hizmetiyle çalışırken günlük kaydı ayrıntı düzeyi üzerinde ayrıntılı denetim olanağı sağlar.
Aşağıdaki kodla oluşturun
index.js.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); });Projeyi oluşturun ve npm bağımlılıklarını yükleyin.
npm init -y npm pkg set type=module npm install @azure/identity @azure/storage-blob @azure/loggerAzure CLI ile yerel ortamınızda Azure aboneliğinizde oturum açın.
az loginUygulamayı bir ortam değişkeni dosyasıyla çalıştırın. Seçenek
--env-fileNode.js 20.6.0'da sunulmuştur.node --env-file .env index.jsÇıktıda başarılı olan kimlik bilgisini bulun.
ChainedTokenCredential, kodunuzun kimlik doğrulama yöntemleri arasında sorunsuzca geçiş yapmasını sağlar; önceManagedIdentityCredential’i dener (Azure App Service gibi üretim ortamları için), ardındanAzureCliCredential’ye geri döner (yerel geliştirme için) ve günlük kayıtları hangi kimlik bilgilerinin başarılı olduğunu gösterir.
Önkoşullar
- Azure aboneliği: Ücretsiz bir abonelik oluşturun
- Node.js LTS
- TypeScript
- İsteğe bağlı olarak, yerel geliştirme ortamında kimlik doğrulaması için kullanılan Azure CLI gibi bir kimlik doğrulama aracı. Gerekli bağlamı oluşturmak için Azure CLI ile oturum açın.
Ortam değişkeniyle günlük kaydını etkinleştirin
Günlüğü etkinleştirmenin basit bir yolu için uygulamayı ortam değişkeniyle başlatın.
AZURE_LOG_LEVEL=verbose node index.js
Ortam değişkenlerini belirleme
Ayrıca, proje kökünüzdeki bir .env dosyaya ortam değişkenleri de ekleyebilirsiniz. adlı .env bir dosya oluşturun ve aşağıdaki içeriği ekleyin.
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>
Kaynak kodunda logger paketi kullanarak günlük kaydını etkinleştirme
Aşağıdaki kod örneği, Azure SDK istemci kitaplıklarında hata ayıklamak için @azure/logger paketini kullanır.
Belirli hizmetler için günlüğe kaydetmeyi yapılandırma
Genel günlük düzeyini ayarlamaya ek olarak, belirli Azure hizmetleri için farklı günlük düzeylerini doğrudan kodunuz içinde yapılandırabilirsiniz:
// 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
Bu yaklaşım, aynı uygulamada birden çok Azure hizmetiyle çalışırken günlük kaydı ayrıntı düzeyi üzerinde ayrıntılı denetim sağlar.
Aşağıdaki kodla oluşturun
index.ts.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); });Projeyi oluşturun ve npm bağımlılıklarını yükleyin.
npm init -y npm pkg set type=module npm install @azure/identity @azure/storage-blob @types/node @azure/loggerAzure CLI ile yerel ortamınızda Azure aboneliğinizde oturum açın.
az loginUygulamayı oluşturun.
tscUygulamayı bir ortam değişkeni dosyasıyla çalıştırın. Seçenek
--env-fileNode.js 20.6.0'da sunulmuştur.node --env-file .env index.jsÇıktıda başarılı kimlik bilgisini bulun -
ChainedTokenCredential, kodunuzun kimlik doğrulama yöntemleri arasında sorunsuz bir şekilde geçiş yapmasını sağlar; önceManagedIdentityCredential’i dener (Azure App Service gibi üretim ortamları için), ardındanAzureCliCredential’ye geri döner (yerel geliştirme için) ve günlüklerde hangi kimlik bilgisinin başarılı olduğunu gösterir.