TraceSwitch based logging is used. There are 4 trace switches to make logging flexible.
Handler.TraceSwitch
Trace switch to control Handler related tracing and debug output. App.config trace switch name is Onixs.CmeFastHandler.
Handler.ReceiversTraceSwitch
Trace switch to control udp receivers related tracing and debug output. App.config trace switch name is Onixs.CmeFastHandler.Receivers. Received upd packets in base 64 encoding will be added to log with Verbose level.
Handler.FixMessagesTraceSwitch
Trace switch to control fix message processing related tracing and debug output. App.config trace switch name is Onixs.CmeFastHandler.FixMessages. Decoded fix messages will be added to log with Info level.
Handler.OrderBookTraceSwitch
Trace switch to control order books related tracing and debug output. App.config trace switch name is Onixs.CmeFastHandler.OrderBook.
Handler trace swithces can be configured using either App.config file or static properties of the Handler class.
For example:

<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.diagnostics> <switches> <!-- This switch controls general messages. In order to receive general trace messages change the value to the appropriate level. "0" gives nothing "1" gives error messages, "2" gives error and warning messages, "3" gives error, warning and info messages, "4" gives error, warning, info and verbose messages. --> <add name="Onixs.CmeFastHandler" value="2"/> <add name="Onixs.CmeFastHandler.Receivers" value="2"/> <add name="Onixs.CmeFastHandler.FixMessages" value="3"/> <add name="Onixs.CmeFastHandler.OrderBook" value="2"/> </switches> <trace> <listeners> <remove name="Default" /> <add name="textWriterTraceListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="TraceLog.txt" /> </listeners> </trace> </system.diagnostics> </configuration>
or:

Handler.TraceSwitch.Level = TraceLevel.Warning; Handler.ReceiversTraceSwitch = TraceLevel.Warning; Handler.FixMessagesTraceSwitch = TraceLevel.Info; Handler.OrderBookTraceSwitch.Level = TraceLevel.Warning;