InternalTraceWriter
InternalTraceWriter can write to a separate file per domain
and process using it or feed output to another TextWriter;
using System.IO;
using System.Text;
namespace NUnit.Framework.Internal
{
public class InternalTraceWriter : TextWriter
{
private TextWriter writer;
private object myLock = new object();
public override Encoding Encoding => writer.Encoding;
public InternalTraceWriter(string logPath)
{
writer = new StreamWriter(new FileStream(logPath, FileMode.Append, FileAccess.Write, FileShare.Write)) {
AutoFlush = true
};
}
public InternalTraceWriter(TextWriter writer)
{
this.writer = writer;
}
public override void Write(char value)
{
lock (myLock) {
writer.Write(value);
}
}
public override void WriteLine(string value)
{
lock (myLock) {
writer.WriteLine(value);
}
}
}
}