DirectoryConfiguration.DirectoryQuotaInMB Property
Gets or sets the maximum size of the directory defined by the Path property to which file-based logs are written.
Namespace: Microsoft.WindowsAzure.Diagnostics
Assembly: Microsoft.WindowsAzure.Diagnostics (in Microsoft.WindowsAzure.Diagnostics.dll)
Syntax
public int DirectoryQuotaInMB { get; set; }
public:
property int DirectoryQuotaInMB {
int get();
void set(int value);
}
member DirectoryQuotaInMB : int with get, set
Public Property DirectoryQuotaInMB As Integer
Property Value
Type: System.Int32
Type: System.Int32
Returns Int32.
Remarks
This property specifies the size of the local directory to which a role instance’s DiagnosticMonitor will store file-based diagnostics and logging data. By default, the DirectoryQuotaInMB is set to 1GB.
The size you specify for the DirectoryQuotaInMB property applies towards the OverallQuotaInMB property. Specifying a DirectoryQuotaInMB that is larger than the OverallQuotaInMB will result in an exception. If your role instance uses many logging directories, ensure that the combined size of each DirectoryQuotaInMB property is less than your OverallQuotaInMB value.
Examples
You use this property by creating a new DirectoryConfiguration object and assigning its DirectoryQuotaInMB property value:
// Create a new DirectoryConfiguration object.
DirectoryConfiguration directoryConfiguration = new DirectoryConfiguration();
// Add the directory size quota.
directoryConfiguration.DirectoryQuotaInMB = 2048;
The following code snippet demonstrates how to use the DirectoryQuotaInMB property 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.
See Also
DirectoryConfiguration Class
Microsoft.WindowsAzure.Diagnostics Namespace
Return to top