【问题标题】:"EventSourceException" with no details on every log, but the log itself still comes through“EventSourceException”,每个日志都没有详细信息,但日志本身仍然通过
【发布时间】: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


    【解决方案1】:

    事实证明

    • 我将相关的活动 ID 用于非预期用途
    • 为了使其工作,您必须在事件属性中指定一个 EventOpCode。

    【讨论】:

    • 您找到这个问题的根本原因了吗?不能肯定地说,但似乎我在安装新运行时后调用 WriteEventWithRelatedActivityId 时开始遇到同样的问题。
    • 根本原因是我没有正确使用它。相关活动 ID 用于将 线程 关联回它们的父线程。但是如果你要使用它,你必须指定一个 EventOpCode。只需指定它就可以为我工作。
    • 感谢您的回复。我们所有的事件都标有这个属性。我试图重现我在 4.5 运行时机器上遇到的问题 - 一切正常。所以看来是4.6造成的
    猜你喜欢
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多