Skip to content

Instantly share code, notes, and snippets.

@romeshniriella
Created August 11, 2017 07:15
Show Gist options
  • Save romeshniriella/96c6d3eb59175cbe298259a2ea705875 to your computer and use it in GitHub Desktop.
Save romeshniriella/96c6d3eb59175cbe298259a2ea705875 to your computer and use it in GitHub Desktop.
A Log4Net based trace listener for system.diagnostics.tracing
using DinkLabs.Runtime.Logging;
namespace DinkLabs.Web.Core.Logging
{
public class Log4NetTraceListener : System.Diagnostics.TraceListener
{
private readonly ILog _log;
public Log4NetTraceListener(string provider)
{
_log = new Logger().SetLogger(provider);
}
public override void Write(string message)
{
_log?.Debug(message);
}
public override void WriteLine(string message)
{
_log?.Debug(message);
}
}
}
<system.diagnostics>
<sources>
<source name="SignalR.SqlMessageBus">
<listeners>
<add name="SignalR-Bus" />
</listeners>
</source>
<source name="SignalR.ServiceBusMessageBus">
<listeners>
<add name="SignalR-Bus" />
</listeners>
</source>
<source name="SignalR.RedisMessageBus">
<listeners>
<add name="SignalR-Bus" />
</listeners>
</source>
<source name="SignalR.ScaleoutMessageBus">
<listeners>
<add name="SignalR-Bus" />
</listeners>
</source>
<source name="SignalR.Transports.WebSocketTransport">
<listeners>
<add name="SignalR-Transports" />
</listeners>
</source>
<source name="SignalR.Transports.ServerSentEventsTransport">
<listeners>
<add name="SignalR-Transports" />
</listeners>
</source>
<source name="SignalR.Transports.ForeverFrameTransport">
<listeners>
<add name="SignalR-Transports" />
</listeners>
</source>
<source name="SignalR.Transports.LongPollingTransport">
<listeners>
<add name="SignalR-Transports" />
</listeners>
</source>
<source name="SignalR.Transports.TransportHeartBeat">
<listeners>
<add name="SignalR-Transports" />
</listeners>
</source>
<source name="SignalR.ReflectedHubDescriptorProvider">
<listeners>
<add name="SignalR-Init" />
</listeners>
</source>
</sources>
<!-- Sets the trace verbosity level -->
<switches>
<add name="SignalRSwitch" value="Verbose" />
</switches>
<!-- Specifies the trace writer for output -->
<sharedListeners>
<!-- Listener for transport events -->
<add name="SignalR-Transports" type="DinkLabs.Web.Core.Logging.Log4NetTraceListener, DinkLabs.Web" provider="SignalRScaleoutLog" />
<!-- Listener for scaleout provider events -->
<add name="SignalR-Bus" type="DinkLabs.Web.Core.Logging.Log4NetTraceListener, DinkLabs.Web" provider="SignalRTransportLog" />
<!-- Listener for hub discovery events -->
<add name="SignalR-Init" type="DinkLabs.Web.Core.Logging.Log4NetTraceListener, DinkLabs.Web" provider="SignalRInitLog" />
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment