DiagnosticMonitorConfiguration.Directories Property

 

Gets or sets the buffer configuration for file-based logs, including custom logs.

Namespace:   Microsoft.WindowsAzure.Diagnostics
Assembly:  Microsoft.WindowsAzure.Diagnostics (in Microsoft.WindowsAzure.Diagnostics.dll)

Syntax

public DirectoriesBufferConfiguration Directories { get; set; }
public:
property DirectoriesBufferConfiguration^ Directories {
    DirectoriesBufferConfiguration^ get();
    void set(DirectoriesBufferConfiguration^ value);
}
member Directories : DirectoriesBufferConfiguration with get, set
Public Property Directories As DirectoriesBufferConfiguration

Property Value

Type: Microsoft.WindowsAzure.Diagnostics.DirectoriesBufferConfiguration

Type: Microsoft.WindowsAzure.Diagnostics.DirectoriesBufferConfiguration

Returns DirectoriesBufferConfiguration.

Remarks

The diagnostics.wadcfg file is used to configure diagnostics in your application. For more information on how to configure your diagnostics.wadcfg file, see Enabling Diagnostics in Windows Azure. Once your application is running in Windows Azure, you can use the DiagnosticMonitorConfiguration class along with the RoleInstanceDiagnosticManager class to remotely change your application’s diagnostics configuration.

The Directories property is used to specify the DirectoriesBufferConfiguration data buffer that is used for file-based logs, such as crash dumps, failed IIS request logs, IIS logs, and custom error logs. This property enables you to add one or more data sources to the DataSources collection, which is of type DirectoryConfiguration. You can also specify the default data buffer properties: BufferQuotaInMB and ScheduledTransferPeriod.

Example

The following code snippet gets the diagnostic monitor configuration for each instance in a specific role, specifies the directories configuration for crash dumps, and sets the new configuration.

// Get the connection string. It's recommended that you store the connection string in your web.config or app.config file.
// Use the ConfigurationManager type to retrieve your storage connection string.  You can find the account name and key in
// the Windows Azure Management Portal (https://manage.windowsazure.com).
//string connectionString = "DefaultEndpointsProtocol=https;AccountName=<AccountName>;AccountKey=<AccountKey>";
string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString;

// The deployment ID and role name for your application can be obtained from the 
// Windows Azure Management Portal (https://manage.windowsazure.com). See your 
// application dashboard under Cloud Services.
string deploymentID = "e2ab8b6667644666ba627bdf6f5e4daa";
string roleName = "WebRole1";

// Get the DeploymentDiagnosticManager object for your deployment.
DeploymentDiagnosticManager diagManager = new DeploymentDiagnosticManager(connectionString, deploymentID);

// Get the RoleInstanceDiagnosticManager objects for each instance of your role.
IEnumerable<RoleInstanceDiagnosticManager> instanceManagers = diagManager.GetRoleInstanceDiagnosticManagersForRole(roleName);

// Iterate through the role instances and update the configuration.
foreach (RoleInstanceDiagnosticManager roleInstance in instanceManagers)
{
   DiagnosticMonitorConfiguration diagnosticConfiguration = roleInstance.GetCurrentConfiguration();

   // Create a new DirectoryConfiguration object.
   DirectoryConfiguration directoryConfiguration = new DirectoryConfiguration();

   // Add the name for the blob container in Windows Azure storage.
   directoryConfiguration.Container = "wad-crash-dumps";

   // Add the directory size quota for the blob container.
   directoryConfiguration.DirectoryQuotaInMB = 2048;

   // Add the directoryConfiguration to the Directories collection.
   diagnosticConfiguration.Directories.DataSources.Add(directoryConfiguration);

   // Schedule a transfer period of 30 minutes.
   diagnosticConfiguration.Directories.ScheduledTransferPeriod = TimeSpan.FromMinutes(30.0);

   // Set the configuration.
   roleInstance.SetCurrentConfiguration(diagnosticConfiguration);
}

Warning

This API is not supported in Azure SDK versions 2.5 and higher. Instead, use the diagnostics.wadcfg XML configuration file. For more information, see Collect Logging Data by Using Azure Diagnostics.

See Also

DiagnosticMonitorConfiguration Class
Microsoft.WindowsAzure.Diagnostics Namespace

Return to top