As things go, using Console.Out
for debug information is eventually going to interfere with your program.
As of this posting, I feel that NLog is the best option for logging. Especially in asynchronous applications due to their non-blocking API and very simple configuration.