Mercurial > pub > ImplabNet
comparison Implab/Diagnostics/TextFileListener.cs @ 134:04d4c92d0f28 v2
Improved logging
| author | cin |
|---|---|
| date | Wed, 11 Feb 2015 02:12:15 +0300 |
| parents | 4c0e5ef99986 |
| children | d45bdf510514 |
comparison
equal
deleted
inserted
replaced
| 133:6c49d02a9a05 | 134:04d4c92d0f28 |
|---|---|
| 1 using System; | 1 using System; |
| 2 using System.IO; | 2 using System.IO; |
| 3 using System.Text; | 3 using System.Text; |
| 4 | 4 |
| 5 namespace Implab.Diagnostics { | 5 namespace Implab.Diagnostics { |
| 6 public class TextFileListener: TextListenerBase { | 6 public class TextFileListener: ListenerBase { |
| 7 readonly TextWriter m_textWriter; | 7 readonly TextWriter m_textWriter; |
| 8 | 8 |
| 9 public TextFileListener(string fileName, bool global) | 9 public TextFileListener(string fileName) { |
| 10 : base(global) { | |
| 11 m_textWriter = File.CreateText(fileName); | 10 m_textWriter = File.CreateText(fileName); |
| 12 | 11 |
| 13 m_textWriter.WriteLine("LOG {0}", DateTime.Now); | 12 m_textWriter.WriteLine("LOG {0}", DateTime.Now); |
| 14 Register(this); | |
| 15 } | 13 } |
| 16 | 14 |
| 17 protected override void WriteEntry(LogEventArgs args, EventText text, string channel) { | 15 #region implemented abstract members of ListenerBase |
| 16 | |
| 17 public override void Write(LogEventArgs args, object entry) { | |
| 18 var msg = new StringBuilder(); | 18 var msg = new StringBuilder(); |
| 19 for (int i = 0; i < text.indent; i++) | 19 for (int i = 0; i < args.Operation.Level; i++) |
| 20 msg.Append(" "); | 20 msg.Append(" "); |
| 21 msg.AppendFormat("[{0}]:{1}: {2}", args.ThreadId, channel, text.content); | 21 msg.AppendFormat("[{0}]:{1}: {2}", args.ThreadId, args.ChannelName, entry); |
| 22 | 22 |
| 23 lock (m_textWriter) { | 23 lock (m_textWriter) { |
| 24 if (!IsDisposed) { | 24 if (!IsDisposed) { |
| 25 // тут гарантировано еще не освобожден m_textWriter | 25 // тут гарантировано еще не освобожден m_textWriter |
| 26 m_textWriter.WriteLine(msg); | 26 m_textWriter.WriteLine(msg); |
| 27 m_textWriter.Flush(); | 27 m_textWriter.Flush(); |
| 28 } | 28 } |
| 29 } | 29 } |
| 30 } | 30 } |
| 31 | 31 |
| 32 | 32 #endregion |
| 33 | |
| 33 protected override void Dispose(bool disposing) { | 34 protected override void Dispose(bool disposing) { |
| 34 base.Dispose(disposing); | 35 base.Dispose(disposing); |
| 35 if (disposing) { | 36 if (disposing) { |
| 36 // IsDisposed = true | 37 // IsDisposed = true |
| 37 lock (m_textWriter) { | 38 lock (m_textWriter) { |
