捕获SignalR记录到文件

时间:2014-04-07 12:53:34

标签: logging signalr

我正在使用SignalR 1.2。

我启用了客户端SignalR日志记录,并在调用EnableDetailedErrors时将true设置为MapHubs(),这样就可以将非常有用的信息发送到Chrome开发工具控制台窗口

是否有办法以某种方式将此信息捕获到磁盘,即是否有SignalR配置可用于启用此功能?我问的原因是,当发生断开连接事件时,例如用户关闭浏览器,我想以某种方式捕获它。手动将控制台输出保存到记事本(通过复制和粘贴)并不理想,因为我会松开任何断开连接事件的细节,因为一旦浏览器也关闭,开发工具窗口将关闭。

我可以将此日志记录信息捕获到磁盘吗?

1 个答案:

答案 0 :(得分:1)

您可以让SignalR将其服务器端跟踪写入Web.config中指定的文件:

  <system.diagnostics>
    <sharedListeners>
      <add name="traces" type="System.Diagnostics.TextWriterTraceListener" initializeData="server_traces.txt" />
    </sharedListeners>
    <trace autoflush="true" />
    <switches>
      <add name="SignalRSwitch" value="All" />
    </switches>
    <sources>
      <source name="SignalR.Connection">
        <listeners>
          <add name="traces" />
        </listeners>        
      </source>
      <source name="SignalR.PersistentConnection">
        <listeners>
          <add name="traces" />
        </listeners>
      </source>
      <source name="SignalR.ReflectedHubDescriptorProvider">
        <listeners>
          <add name="traces" />
        </listeners>
      </source>
      <source name="SignalR.HubDispatcher">
        <listeners>
          <add name="traces" />
        </listeners>
      </source>
      <source name="SignalR.MessageBus">
        <listeners>
          <add name="traces" />
        </listeners>
      </source>
      <source name="SignalR.Transports.WebSocketTransport">
        <listeners>
          <add name="traces" />
        </listeners>
      </source>
      <source name="SignalR.Transports.ServerSentEventsTransport">
        <listeners>
          <add name="traces" />
        </listeners>
      </source>
      <source name="SignalR.Transports.ForeverFrameTransport">
        <listeners>
          <add name="traces" />
        </listeners>
      </source>
      <source name="SignalR.Transports.LongPollingTransport">
        <listeners>
          <add name="traces" />
        </listeners>
      </source>
      <source name="SignalR.Transports.TransportHeartBeat">
        <listeners>
          <add name="traces" />
        </listeners>
      </source>
    </sources>
  </system.diagnostics>

https://github.com/SignalR/SignalR/wiki/Tracing-on-the-server-side


如果您正在使用横​​向扩展提供程序,您还可以为&#34; SignalR.ScaleoutMessageBus&#34;,&#34; SignalR.SqlMessageBus&#34;,&#34; SignalR.ServiceBusMessageBus&#34;添加源,和/或&#34; SignalR.RedisMessageBus&#34;。

http://www.asp.net/signalr/overview/signalr-20/performance-and-scaling/scaleout-in-signalr