I have a C# console app that is using NLog. In that app, I'm trying to log information to file locations conditionally. As a contrived example, let's pretend I need to sometimes log entries to an "evens" log file and sometimes I need to log entries to an "odds" log file. In an attempt to do this, I've setup the following configuration:
<nlog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <targets>
    <target name="evensLogFile" xsi:type="File" fileName="${basedir}/logs/evens.log" createDirs="true" keepFileOpen="true" encoding="utf-8" layout="${longdate} ${message}${exception:format=ToString}"></target>
    <target name="oddsLogFile" xsi:type="File" fileName="${basedir}/logs/odds.log" createDirs="true" keepFileOpen="true" encoding="utf-8" layout="${longdate} ${message}${exception:format=ToString}"></target>
  </targets>
  <rules>
    <logger name="Evens" minlevel="Trace" writeTo="evensLogFile" />
    <logger name="Odds" minlevel="Trace" writeTo="oddsLogFile" />
  </rules>
</nlog>
Now, in my code, when I want to write a log entry, I have the following:
public void Log(string message)
{
  var random = new Random();
  var i = random.Next(1, 11);
  Logger logger = null;
  if(i%2 == 0) {
    // somehow get a logger for "evens" 
  } else {
    // somehow get a logger for "odds"
  }
  logger.Log(LogLevel.Info, message);
}
I can successfully write logs to a single log file if I use Logger logger = LogManager.GetCurrentClassLogger(); However, I can't figure out how to log different log messages to different files based on some logic. Any help is appreciated!