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:
-
AZURE_LOG_LEVEL=verboseGünlük kaydını açmak için ortam değişkenini ayarlayın. -
@azure/loggerPaketi kaynak kodunuzda kullanın.
Geçerli günlük düzeyleri , , verboseinfove warningdüzeylerini içerirerror.
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üğe kaydetmeyi etkinleştirme
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 günlükçü paketiyle günlüğe kaydetmeyi etkinleştirme
Aşağıdaki kod örneği, Azure SDK istemci kitaplıklarının hatalarını ayıklamak için @azure/günlükçü 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 ayrıntılı günlüğe kaydetme ayrıntısı denetimi 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ı kimlik bilgilerini bulun.
ChainedTokenCredentialkodunuzun önce denemeManagedIdentityCredential(Azure App Service gibi üretim ortamları için) ve ardından hangi kimlik bilgilerinin başarılı olduğunu gösteren günlüklerle (yerel geliştirme için) geriAzureCliCredentialdönerek kimlik doğrulama yöntemleri arasında sorunsuz geçiş yapmasına olanak tanır.
Ö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üğe kaydetmeyi etkinleştirme
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 günlükçü paketiyle günlüğe kaydetmeyi etkinleştirme
Aşağıdaki kod örneği, Azure SDK istemci kitaplıklarının hatalarını ayıklamak için @azure/günlükçü 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 ayrıntılı günlüğe kaydetme ayrıntısı denetimi 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 bilgilerini bulma - kodunuzun
ChainedTokenCredentialkimlik doğrulama yöntemleri arasında sorunsuz bir şekilde geçiş yapmasını sağlar; önce denemeManagedIdentityCredential(Azure App Service gibi üretim ortamları için) ve ardından hangi kimlik bilgilerinin başarılı olduğunu gösteren günlüklerle (yerel geliştirme için) geriAzureCliCredentialdöner.