Mercurial > pub > ImplabNet
diff Implab/Diagnostics/TextFileListener.cs @ 40:fe33f4e02ad5
improved tracing
added text listeners (file,console)
author | cin |
---|---|
date | Tue, 15 Apr 2014 17:52:09 +0400 |
parents | |
children | 7c2369f580b8 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Implab/Diagnostics/TextFileListener.cs Tue Apr 15 17:52:09 2014 +0400 @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; + +namespace Implab.Diagnostics { + public class TextFileListener: TextListenerBase { + readonly TextWriter m_textWriter; + + public TextFileListener(string fileName) { + m_textWriter = File.CreateText(fileName); + + m_textWriter.WriteLine("LOG {0}", DateTime.Now); + Register(this); + } + + protected override void WriteEntry(TraceContext context, EventText text) { + var msg = new StringBuilder(); + for (int i = 0; i < text.indent; i++) + msg.Append(" "); + msg.AppendFormat("[{0}]: {1}", context.ThreadId, text.content); + + lock (m_textWriter) { + if (!IsDisposed) { + m_textWriter.WriteLine(msg.ToString()); + m_textWriter.Flush(); + } + } + } + + + protected override void Dispose(bool disposing) { + base.Dispose(disposing); + if (disposing) { + lock (m_textWriter) { + Safe.Dispose(m_textWriter); + } + } + } + + + } +}