2014-04-07 38 views
0

我正在使用SignalR 1.2。捕獲SignalR記錄到文件

我調用MapHubs()時,啓用了客戶端SignalR日誌記錄功能,並且將EnableDetailedErrors設置爲true,這會導致向我發送非常有用的信息發送到Chrome開發工具控制檯窗口。

有沒有辦法將這些信息捕獲到磁盤上,也就是說有沒有一個SignalR配置可用來啓用它?我想問的原因是,當斷開事件發生時,比如用戶關閉瀏覽器,我想以某種方式捕獲。將控制檯輸出手動保存到記事本(通過複製和粘貼)並不理想,因爲我將丟失任何斷開事件詳細信息,因爲一旦瀏覽器也關閉,開發工具窗口將關閉。

這個日誌記錄信息可以爲我捕獲到磁盤嗎?

+0

爲什麼不寫入調試控制檯的輸出? –

+0

從SignalR的日誌記錄正在輸出到控制檯窗口。我想要的是將內容發送到文件。 –

+0

我認爲我有這樣做的一個黑客方式。我可以創建自己的'console'對象並假冒'debug()'函數。因此,我有'console.debug(message)'我可以通過任何我想要的方式保存'message'。 –

回答

0

你可以有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


如果您使用的是scaleout提供商,你也可以添加源用於「SignalR.ScaleoutMessageBus」,「SignalR.SqlMessageBus」,「SignalR.ServiceBusMessageBus」和/或「SignalR.RedisMessageBus」。

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

+0

非常好。今天我會放棄這一點。 –