Reputation: 29186
I'm using SignalR 1.2.
I have enabled client-side SignalR logging, plus EnableDetailedErrors
is set to true
when calling MapHubs()
which results in very useful information being emitted to the Chrome dev tools console window for me.
Is there a means of capturing this information to disk somehow i.e. is there a SignalR config available to enable this? Reason I ask is that, when a disconnect event occurs, such as the user closing the browser, I'd like to capture that somehow. Saving the console output manually to Notepad (via copy and paste) is not ideal, since I would loose any disconnect event detail as the dev tool window will close once the browser is also closed.
Can this logging information be capture to disk for me?
Upvotes: 0
Views: 5337
Reputation: 15234
You can have SignalR write its server-side traces to files specified in 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
If you are using a scaleout provider, you can also add sources for "SignalR.ScaleoutMessageBus", "SignalR.SqlMessageBus", "SignalR.ServiceBusMessageBus", and/or "SignalR.RedisMessageBus".
http://www.asp.net/signalr/overview/signalr-20/performance-and-scaling/scaleout-in-signalr
Upvotes: 2