在WindowsAzure上把TranceLog和EventLog输出到Storage的方法

来源:互联网 发布:软件系统可行性分析 编辑:程序博客网 时间:2024/05/22 15:07
 

在WindowsAzure上把TranceLog和EventLog输出到Storage的方法

 

1、修改web.config启用一个Diagnostic监听器

<configuration>  <system.diagnostics>    <trace>      <listeners>        <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"          name="AzureDiagnostics">          <filter type="" />        </add>      </listeners>    </trace>  </system.diagnostics></configuration>


 

2、在OnStart函数中启动该Diagnostic监听器

        public override bool OnStart()        {            DiagnosticMonitorConfiguration diagConfig = DiagnosticMonitor.GetDefaultInitialConfiguration();            //Trance log            diagConfig.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose;            diagConfig.Logs.ScheduledTransferPeriod = System.TimeSpan.FromMinutes(1);            //EventLog            diagConfig.WindowsEventLog.DataSources.Add("System!*");            diagConfig.WindowsEventLog.DataSources.Add("Application!*");            diagConfig.WindowsEventLog.ScheduledTransferLogLevelFilter = LogLevel.Verbose;            diagConfig.WindowsEventLog.ScheduledTransferPeriod = System.TimeSpan.FromMinutes(1);            //Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString是需要在.cscfg文件中配置的Storage连接字符串            DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", diagConfig);            return base.OnStart();        }


 

3、在其他代码中输出TranceLog和EventLog。

//输出一条TranceLog到Storage中Trace.WriteLine("WriteTaskList ...");//输出两条EventLog到Storage中EventLog eventApp2 = new EventLog("Application");eventApp2.Source = "AzureTest App";eventApp2.WriteEntry(count + " EventLog write(AzureTest App)");EventLog eventSys2 = new EventLog("System");eventSys2.Source = "AzureTest Sys";eventSys2.WriteEntry(count + " EventLog write(AzureTest Sys)");


 

 参考文章: 云诊断:控制 Windows Azure 中的日志记录与跟踪

 

 

原创粉丝点击