【发布时间】:2015-12-18 17:39:47
【问题描述】:
所以我正在使用 SLAB,并且我有一个数据库侦听器注销到数据库。我正在事件源上使用单一方法进行测试。我遇到的问题是日志正按我的意愿插入到数据库中,但我在每个条目之前都会收到一个异常日志
在我的输出窗口中,它说的完全一样,“EventSourceException”。我很难弄清楚异常是什么,更不用说如何修复它了。
这里是事件源方法:
[Event(2, Message = "ACCESS_ADMIN",
Level = EventLevel.LogAlways,
Keywords = Keywords.AdminAccess)]
public void LogAdminAccess(string userInfo, string resource, string clientIpAddress, bool succeeded)
{
SetCurrentThreadActivityId(GetNewActivityId());
WriteEventWithRelatedActivityId(2, GetRequestId(), userInfo, resource, clientIpAddress, succeeded);
}
这就是监听器的初始化方式,inproc:
var dbSemanticLogListener = SqlDatabaseLog.CreateListener(
"MyComponent",
PayliteRegistry.MainDatabaseConnectionString);
dbSemanticLogListener.EnableEvents(
AprivaPciAuditEventSource.Log,
EventLevel.LogAlways,
MyEnum.Keywords.AccountModified |
MyEnum.Keywords.AdminAccess |
MyEnum.Keywords.DatabaseAccess |
MyEnum.Keywords.ApplicationStateChange);
以及对记录器的调用:
MyLoggerClass.Log.LogAdminAccess(
userInfo,
request.RequestUri.AbsolutePath,
request.GetClientIpAddress(),
true);
对于问题可能是什么,或者至少如何处理引发的实际异常有任何想法吗?
未显示的其他位
- 这个 EventSource 类是密封的
- 我已逐步验证并确认方法
GetNewActivityId()和GetRequestId()没有引发异常 - 当
WriteEventWithRelatedActivityId(...被执行但异常没有冒泡时,异常显示在输出窗口中;它似乎是在基类中处理的。
【问题讨论】:
标签: .net logging semantic-logging slab