ln.logging/LoggingWriter.cs

48 lines
1.0 KiB
C#

using System;
using System.IO;
using System.Text;
using System.Collections.Generic;
namespace ln.logging
{
class LoggingWriter : TextWriter
{
Logger logger;
LogLevel level;
List<char> linebuffer = new List<char>();
public LoggingWriter(Logger logger, LogLevel level = LogLevel.INFO)
{
this.logger = logger;
this.level = level;
}
public override void Write(char value)
{
if (value == '\n')
{
logger.Log(level, new String(linebuffer.ToArray()));
linebuffer.Clear();
}
else
{
linebuffer.Add(value);
}
}
public override void WriteLine(string format, params object[] args)
{
logger.Log(level, format, args);
}
public override Encoding Encoding
{
get
{
return Encoding.UTF8;
}
}
}
}