using System;
using System.IO;
///
/// Used to redirect IronPython output to the Unity debug console.
///
public class UnityLogWriter : StreamWriter
{
private readonly Action logger;
private string buffer = "";
public UnityLogWriter(Action logger, Stream s) : base(s)
{
if (logger == null)
{
throw new ArgumentNullException("logger");
}
this.logger = logger;
}
public override void Write(string value)
{
base.Write(value);
buffer += value;
var lines = buffer.Split('\n');
for (var i = 0; i < lines.Length; ++i)
{
if (i == lines.Length - 1)
{
buffer = lines[i];
}
else
{
logger(lines[i]);
}
}
}
}