加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

如何启用WCF日志记录以便写入数据库?

发布时间:2020-12-12 06:36:46 所属栏目:MsSql教程 来源:网络整理
导读:我希望能够在数据库中记录消息信息,我正在尝试决定如何最好地做到这一点.是否可以将WCF日志记录机制配置为写入数据库而不是文件?谢谢. 解决方法 你需要有两件事: 正确的配置以启用.NET跟踪 跟踪侦听器,用于捕获跟踪消息并将其存储在数据库中 对于#1: 您需
我希望能够在数据库中记录消息信息,我正在尝试决定如何最好地做到这一点.是否可以将WCF日志记录机制配置为写入数据库而不是文件?谢谢.

解决方法

你需要有两件事:

>正确的配置以启用.NET跟踪
>跟踪侦听器,用于捕获跟踪消息并将其存储在数据库中

对于#1:
您需要首先在WCF中启用跟踪 – 您需要< system.serviceModel>中的条目.启用跟踪:

<system.serviceModel>
   <diagnostics>
      <messageLogging
          logEntireMessage="true"
          logMalformedMessages="false"
          logMessagesAtServiceLevel="true"
          logMessagesAtTransportLevel="false"
          maxMessagesToLog="300000"
          maxSizeOfMessageToLog="200000"/>
    </diagnostics>
</system.serviceModel>

接下来,您需要配置.NET跟踪:

<system.diagnostics>
   <sources>
      <source name="System.ServiceModel" 
              switchValue="Information,ActivityTracing" 
              propagateActivity="true">
         <listeners>
            <add name="xml" />
         </listeners>
      </source>
      <source name="System.ServiceModel.MessageLogging">
         <listeners>
             <add name="xml" />
         </listeners>
      </source>
   </sources>
   <sharedListeners>
       <add name="xml" type="WcfTrace.Trace.WebTraceListener,WcfTrace.Trace" />
   </sharedListeners>
</system.diagnostics>

在这里,您可以插入自己的面向数据库的跟踪侦听器,而不是WebTraceListener或其他预定义的侦听器.

对于#2:
您当然可以编写自己的SqlTraceListener – 或者您可以使用许多现成的解决方案之一,例如this one here(从Codeplex下载代码).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读