我编写了一小段代码,通过单击不同的按钮,将收集不同类型的日志记录数据。但是,当我运行这段代码时,通常在通过服务器资源管理器检查时不会反映记录的数据,即使它们已记录,也可以在很长一段时间(15-20 分钟)后查看它们。我在编写这段代码时是否犯了任何错误。这段代码如下:
DiagnosticMonitorConfiguration diagMonitorConfiguration;
RoleInstanceDiagnosticManager roleInstanceDiagnosticManager;
protected void Page_Load(object sender, EventArgs e)
{
// Get the default initial configuration for DiagnosticMonitor.
diagMonitorConfiguration = DiagnosticMonitor.GetDefaultInitialConfiguration();
// Configures the transfer period for basic windows azure logs
diagMonitorConfiguration.Logs.ScheduledTransferPeriod = TimeSpan.FromSeconds(10);
// Configures the log type to be Verbose
diagMonitorConfiguration.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose;
// Start the diagnostics monitor
//DiagnosticMonitor.Start(CloudStorageAccount.DevelopmentStorageAccount, diagConfig);
//CloudStorageAccount storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"));
CloudStorageAccount storageAccount = CloudStorageAccount.DevelopmentStorageAccount;
roleInstanceDiagnosticManager = storageAccount.CreateRoleInstanceDiagnosticManager(RoleEnvironment.DeploymentId, RoleEnvironment.CurrentRoleInstance.Role.Name, RoleEnvironment.CurrentRoleInstance.Id);
//DiagnosticMonitorTraceListener tmpListener = new DiagnosticMonitorTraceListener();
//System.Diagnostics.Trace.Listeners.Add(tmpListener);
}
// Used to trace custom warning messages
protected void btnWarning_Click(object sender, EventArgs e)
{
// tracing user message as a warning
System.Diagnostics.Trace.TraceWarning("WARNING ENCOUNTERED :" + TextBoxName.Text);
}
// tracing custom error messages
protected void btnError_Click(object sender, EventArgs e)
{
// To log the user message as an error
.......TraceError("ERROR ENCOUNTERED :" + TextBoxName.Text);
}
// tracing custom information messages
protected void btnInformation_Click(object sender, EventArgs e)
{
// To log the user message as mere information
.........TraceInformation("INFORMATION SENT :" + TextBoxName.Text);
}
// used to enable diagnostic infrastructure logs to be collected
protected void btnEnableInfrastructure_Click(object sender, EventArgs e)
{
// configuring the type and transfer period for the Infrastructure logs
diagMonitorConfiguration.DiagnosticInfrastructureLogs.ScheduledTransferLogLevelFilter = some filter;
diagMonitorConfiguration.DiagnosticInfrastructureLogs.ScheduledTransferPeriod = SOME TIME PERIOD
// Update the configuration setting for the diagnostic manager
roleInstanceDiagnosticManager.SetCurrentConfiguration(diagConfig);
Thread.Sleep(5000);
}
// used to enable crash dumps for the application
protected void btnEnableCrashDumps_Click(object sender, EventArgs e)
{
//enabling crash dumps
CrashDumps.EnableCollection(true);
// Update the configuration setting for the diagnostic manager
roleInstanceDiagnosticManager.SetCurrentConfiguration(diagConfig);
Thread.Sleep(5000);
}
// used to enable the collection windows event logs
protected void btnEnableEventLogs_Click(object sender, EventArgs e)
{
//Configuring the Windows Event logs
diagMonitorConfiguration.WindowsEventLog.ScheduledTransferLogLevelFilter = LogLevel.Verbose;
// two types of events, application and system data are logged
diagMonitorConfiguration.WindowsEventLog.DataSources.Add("some source");
// the time interval is configured as 5 seconds
diagMonitorConfiguration.WindowsEventLog.ScheduledTransferPeriod = some time period;
// Update the configuration setting for the diagnostic manager
roleInstanceDiagnosticManager.SetCurrentConfiguration(diagConfig);
Thread.Sleep(5000);
}
protected void btnEnablePerfCounters_Click(object sender, EventArgs e)
{
// configuring the performance counter data to be collected. processor time is collected
diagMonitorConfiguration.PerformanceCounters.DataSources.Add(new PerformanceCounterConfiguration()
{
THE REQD PARAMETERS
});
// similarly available memory data is also logged
diagMonitorConfiguration.PerformanceCounters.DataSources.Add(new PerformanceCounterConfiguration()
{
THE REQD PARAMETERS
});
// the scheduled time transfer is configured to 5seconds
diagMonitorConfiguration.PerformanceCounters.ScheduledTransferPeriod = some time period;
//DiagnosticMonitor.Start(CloudStorageAccount.DevelopmentStorageAccount, diagConfig); USED PREVIOUSLY
// Update the configuration setting for the diagnostic manager
roleInstanceDiagnosticManager.SetCurrentConfiguration(diagConfig);
Thread.Sleep(5000);
}
}