C# EventSource未写入SQL数据库
我正在使用EventSource通过EnterpriseLibrary.semanticlocking将我的事件记录到SQL数据库中 以下是试验方法:C# EventSource未写入SQL数据库,c#,logging,azure-sql-database,eventsource,C#,Logging,Azure Sql Database,Eventsource,我正在使用EventSource通过EnterpriseLibrary.semanticlocking将我的事件记录到SQL数据库中 以下是试验方法: [TestMethod] public void Log_Test() { var eventListener = new ObservableEventListener(); var sqlListener = SqlDatabaseLog.CreateListener("Instanc
[TestMethod]
public void Log_Test()
{
var eventListener = new ObservableEventListener();
var sqlListener = SqlDatabaseLog.CreateListener("Instance", CloudConfigurationManager.GetSetting("ConnectionStringTrace"), "Traces");
eventListener.EnableEvents(ApplicationEventSource.Log, EventLevel.LogAlways, Keywords.All);
ApplicationEventSource.Log.ComponentNotLoaded("Milind", "Cheeta", "Core");
ApplicationEventSource类通过以下方法从EventSource派生
[Event(2,
Keywords = Keywords.Component,
Message = "Component: {2} not successfully loaded for user: {0} on machine: {1}",
Task = Tasks.Load,
Opcode = EventOpcode.Start,
Level = EventLevel.Error)]
public void ComponentNotLoaded(string userName, string machineName, string componentName)
{
WriteEvent(2, userName, machineName, componentName);
}
WriteEvent时我没有收到错误,但是没有任何内容被记录到表跟踪请发布完整的ApplicationEventSource类 如果您这样更改方法:
public void ComponentNotLoaded(string userName, string machineName, string componentName)
{
if(IsEnabled())
WriteEvent(2, userName, machineName, componentName);
}
eventListener.LogToSqlDatabase(
Environment.MachineName,
sqlConnectionString,
);
会调用WriteEvent吗?如果没有,结构中就有问题。尝试使用事件源分析器验证EventSource类
看
另外,设置数据库接收器的正常过程如下所示:
public void ComponentNotLoaded(string userName, string machineName, string componentName)
{
if(IsEnabled())
WriteEvent(2, userName, machineName, componentName);
}
eventListener.LogToSqlDatabase(
Environment.MachineName,
sqlConnectionString,
);