Share via


DiagnosticDataBufferConfiguration.ScheduledTransferPeriod Property

 

Gets or sets the interval between scheduled transfers for this data buffer, in minutes.

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

Syntax

public TimeSpan ScheduledTransferPeriod { get; set; }
public:
property TimeSpan ScheduledTransferPeriod {
    TimeSpan get();
    void set(TimeSpan value);
}
member ScheduledTransferPeriod : TimeSpan with get, set
Public Property ScheduledTransferPeriod As TimeSpan

Property Value

Type: System.TimeSpan

Type: System.TimeSpan

Returns TimeSpan.

Remarks

The ScheduledTransferPeriod property is used to set how frequently a data buffer will transfer local logging data to persistent storage. By default, this property is not set for any data buffer to prevent unintentional storage costs.

The value you set for this property will be rounded up to the nearest minute. Therefore, the minimum transfer period you can specify is 1 minute.

Example

The following code snippet remotely sets the transfer period of a Windows event log buffer to 30 minutes on all instances of a specific role.

// 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 classic 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 classic 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();

   // Filter the logs so that only error-level logs are transferred to persistent storage.
   diagnosticConfiguration.WindowsEventLog.ScheduledTransferLogLevelFilter = LogLevel.Error;

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

   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

DiagnosticDataBufferConfiguration Class
Microsoft.WindowsAzure.Diagnostics Namespace

Return to top