comparison Implab/Diagnostics/TextFileListener.cs @ 205:8200ab154c8a v2

Added ResetState to RunnableComponent to reset in case of failure Added StateChanged event to IRunnable Renamed Promise.SUCCESS -> Promise.Success Added Promise.FromException Renamed Bundle -> PromiseAll in PromiseExtensions
author cin
date Tue, 25 Oct 2016 17:40:33 +0300
parents d45bdf510514
children 6efb77590b15
comparison
equal deleted inserted replaced
203:4d9830a9bbb8 205:8200ab154c8a
3 using System.Text; 3 using System.Text;
4 4
5 namespace Implab.Diagnostics { 5 namespace Implab.Diagnostics {
6 public class TextFileListener: ListenerBase { 6 public class TextFileListener: ListenerBase {
7 readonly TextWriter m_textWriter; 7 readonly TextWriter m_textWriter;
8 readonly object m_lock = new object();
8 9
9 public TextFileListener(string fileName) { 10 public TextFileListener(string fileName) {
10 m_textWriter = File.CreateText(fileName); 11 m_textWriter = File.CreateText(fileName);
11 12
12 m_textWriter.WriteLine("LOG {0}", DateTime.Now); 13 m_textWriter.WriteLine("LOG {0}", DateTime.Now);
18 var msg = new StringBuilder(); 19 var msg = new StringBuilder();
19 for (int i = 0; i < args.Operation.Level; i++) 20 for (int i = 0; i < args.Operation.Level; i++)
20 msg.Append(" "); 21 msg.Append(" ");
21 msg.AppendFormat("[{0}]:{1}: {2}", args.ThreadId, args.Channel, entry); 22 msg.AppendFormat("[{0}]:{1}: {2}", args.ThreadId, args.Channel, entry);
22 23
23 lock (m_textWriter) { 24 lock (m_lock) {
24 if (!IsDisposed) { 25 if (!IsDisposed) {
25 // тут гарантировано еще не освобожден m_textWriter 26 // тут гарантировано еще не освобожден m_textWriter
26 m_textWriter.WriteLine(msg); 27 m_textWriter.WriteLine(msg);
27 m_textWriter.Flush(); 28 m_textWriter.Flush();
28 } 29 }
33 34
34 protected override void Dispose(bool disposing) { 35 protected override void Dispose(bool disposing) {
35 base.Dispose(disposing); 36 base.Dispose(disposing);
36 if (disposing) { 37 if (disposing) {
37 // IsDisposed = true 38 // IsDisposed = true
38 lock (m_textWriter) { 39 lock (m_lock) {
39 Safe.Dispose(m_textWriter); 40 Safe.Dispose(m_textWriter);
40 } 41 }
41 } 42 }
42 } 43 }
43 44