DirectoryConfiguration Class

 

Represents the configuration of a directory to which file-based logs are written.

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

Inheritance Hierarchy

System.Object
  Microsoft.WindowsAzure.Diagnostics.DirectoryConfiguration

Syntax

public class DirectoryConfiguration
public ref class DirectoryConfiguration 
type DirectoryConfiguration = class end
Public Class DirectoryConfiguration

Constructors

Name Description
System_CAPS_pubmethod DirectoryConfiguration()

Properties

Name Description
System_CAPS_pubproperty Container

Gets or sets the name of a container defined in a storage account where the contents of file-based logs are to be transferred.

System_CAPS_pubproperty DirectoryQuotaInMB

Gets or sets the maximum size of the directory defined by the Path property to which file-based logs are written.

System_CAPS_pubproperty Path

Gets or sets the absolute path for the local directory to which file-based logs are written.

Methods

Name Description
System_CAPS_pubmethod Equals(Object)

(Inherited from Object.)

System_CAPS_protmethod Finalize()

(Inherited from Object.)

System_CAPS_pubmethod GetHashCode()

(Inherited from Object.)

System_CAPS_pubmethod GetType()

(Inherited from Object.)

System_CAPS_protmethod MemberwiseClone()

(Inherited from Object.)

System_CAPS_pubmethod ToString()

(Inherited from Object.)

Remarks

The DirectoryConfiguration class provides properties to configure a directory for storing logs and diagnostic data. By default, directories for IIS logs (for web roles only), failed request logs, and crash dumps are automatically configured. You can also configure additional custom logs.

The DirectoryConfiguration object is used by your role instance’s DiagnosticMonitorConfiguration. Specifically, you add the DirectoryConfiguration to the DataSources collection of a DiagnosticMonitorConfiguration class.

Example

The following code snippet demonstrates how to use DirectoryConfiguration in the context of a remotely updating a role’s diagnostics configuration. This snippet gets the diagnostics configuration of each instance in a specific role, creates a new DirectoryConfiguration object, specifies the container name 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 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 
// 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 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.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

See Also

Microsoft.WindowsAzure.Diagnostics Namespace

Return to top