<div>Decided to go for slightly simplified solution and drag that log4net dependency with MXP for now but allow other alternatives:</div>
<div> </div>
<div><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>using</p></font></font><font size="2"> System;</font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>using</p></font></font><font size="2"> System.Collections.Generic;</font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>using</p></font></font><font size="2"> System.Text;</font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>using</p></font></font><font size="2"> log4net.Repository.Hierarchy;</font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>using</p></font></font><font size="2"> log4net;</font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>using</p></font></font><font size="2"> System.Reflection;</font><font color="#0000ff" size="2"><font color="#0000ff" size="2">
<p>namespace</p></font></font><font size="2"> MXP.Util
<p>{</p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">public</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">class</font></font><font size="2"> </font><font color="#2b91af" size="2"><font color="#2b91af" size="2">LogUtil</font></font><font size="2">
<p>{</p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">private</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">static</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">readonly</font></font><font size="2"> </font><font color="#2b91af" size="2"><font color="#2b91af" size="2">ILog</font></font><font size="2"> logger = </font><font color="#2b91af" size="2"><font color="#2b91af" size="2">LogManager</font></font><font size="2">.GetLogger(</font><font color="#a31515" size="2"><font color="#a31515" size="2">"MXP"</font></font><font size="2">);
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">public</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">static</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">bool</font></font><font size="2"> LogToTrace = </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">true</font></font><font size="2">;
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">public</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">static</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">bool</font></font><font size="2"> LogToLog4Net = </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">true</font></font><font size="2">;
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">public</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">static</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">bool</font></font><font size="2"> LogToConsole = </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">false</font></font><font size="2">;
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">public</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">static</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">void</font></font><font size="2"> Debug(</font><font color="#0000ff" size="2"><font color="#0000ff" size="2">string</font></font><font size="2"> message)
<p>{</p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">if</font></font><font size="2"> (LogToTrace)
<p>System.Diagnostics.</p></font><font color="#2b91af" size="2"><font color="#2b91af" size="2">Debug</font></font><font size="2">.WriteLine(message);
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">if</font></font><font size="2"> (LogToLog4Net)
<p>logger.Debug(message);</p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">if</font></font><font size="2"> (LogToConsole)
<p></p></font><font color="#2b91af" size="2"><font color="#2b91af" size="2">Console</font></font><font size="2">.WriteLine(</font><font color="#a31515" size="2"><font color="#a31515" size="2">"debug: "</font></font><font size="2"> + message);
<p>}</p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">public</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">static</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">void</font></font><font size="2"> Info(</font><font color="#0000ff" size="2"><font color="#0000ff" size="2">string</font></font><font size="2"> message)
<p>{</p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">if</font></font><font size="2"> (LogToTrace)
<p>System.Diagnostics.</p></font><font color="#2b91af" size="2"><font color="#2b91af" size="2">Trace</font></font><font size="2">.TraceInformation(message);
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">if</font></font><font size="2"> (LogToLog4Net)
<p>logger.Info(message);</p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">if</font></font><font size="2"> (LogToConsole)
<p></p></font><font color="#2b91af" size="2"><font color="#2b91af" size="2">Console</font></font><font size="2">.WriteLine(</font><font color="#a31515" size="2"><font color="#a31515" size="2">"info: "</font></font><font size="2"> + message);
<p>}</p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">public</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">static</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">void</font></font><font size="2"> Warn(</font><font color="#0000ff" size="2"><font color="#0000ff" size="2">string</font></font><font size="2"> message)
<p>{</p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">if</font></font><font size="2"> (LogToTrace)
<p>System.Diagnostics.</p></font><font color="#2b91af" size="2"><font color="#2b91af" size="2">Trace</font></font><font size="2">.TraceWarning(</font><font color="#a31515" size="2"><font color="#a31515" size="2">"Warning: "</font></font><font size="2"> + message);
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">if</font></font><font size="2"> (LogToLog4Net)
<p>logger.Warn(message);</p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">if</font></font><font size="2"> (LogToConsole)
<p></p></font><font color="#2b91af" size="2"><font color="#2b91af" size="2">Console</font></font><font size="2">.WriteLine(</font><font color="#a31515" size="2"><font color="#a31515" size="2">"warn: "</font></font><font size="2"> + message);
<p>}</p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">public</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">static</font></font><font size="2"> </font><font color="#0000ff" size="2"><font color="#0000ff" size="2">void</font></font><font size="2"> Error(</font><font color="#0000ff" size="2"><font color="#0000ff" size="2">string</font></font><font size="2"> message)
<p>{</p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">if</font></font><font size="2"> (LogToTrace)
<p>System.Diagnostics.</p></font><font color="#2b91af" size="2"><font color="#2b91af" size="2">Trace</font></font><font size="2">.TraceError(message);
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">if</font></font><font size="2"> (LogToLog4Net)
<p>logger.Error(message);</p>
<p></p></font><font color="#0000ff" size="2"><font color="#0000ff" size="2">if</font></font><font size="2"> (LogToConsole)
<p></p></font><font color="#2b91af" size="2"><font color="#2b91af" size="2">Console</font></font><font size="2">.Error.WriteLine(</font><font color="#a31515" size="2"><font color="#a31515" size="2">"error: "</font></font><font size="2"> + message);
<p>}</p>
<p>}</p>
<p>}</p></font></div>