Beispiel #1
0
        public void Flush()
        {
            lock (this)
            {
                if (messageBuffer.Length == 0)
                {
                    return;
                }

                String fileName = filenamePrefix + DateTime.Now.ToString("yyyyMMdd") + ".txt";

                if (fileWriter != null && !fileWriter.IsValid(fileName))
                {
                    InnerLoggingFileWriter.RemoveInstance(fileWriter);
                    fileWriter = null;
                }

                if (fileWriter == null)
                {
                    fileWriter = InnerLoggingFileWriter.GetInstance(fileName);
                }

                if (fileWriter.Write(messageBuffer.ToString()))
                {
                    messageBuffer.Length = 0;
                }
            }
        }
Beispiel #2
0
 public void Close()
 {
     Flush();
     if (fileWriter != null)
     {
         InnerLoggingFileWriter.RemoveInstance(fileWriter);
         fileWriter = null;
     }
 }
Beispiel #3
0
 public static void RemoveInstance(InnerLoggingFileWriter writer)
 {
     lock (instances)
     {
         writer.refCount = writer.refCount - 1;
         if (writer.refCount == 0)
         {
             writer.Close();
             instances.Remove(writer.fileName);
         }
     }
 }
Beispiel #4
0
            public static InnerLoggingFileWriter GetInstance(String fileName)
            {
                lock (instances)
                {
                    if (!instances.ContainsKey(fileName))
                    {
                        instances.Add(fileName, new InnerLoggingFileWriter(fileName));
                    }

                    InnerLoggingFileWriter writer = instances[fileName];
                    writer.refCount = writer.refCount + 1;
                    return(writer);
                }
            }