48 lines
1.0 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|