using System; using System.IO; using System.Text; using System.Collections.Generic; namespace ln.logging { class LoggingWriter : TextWriter { Logger logger; LogLevel level; List linebuffer = new List(); 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; } } } }