Exemplo n.º 1
0
 protected void writeToFile()
 {
   if (working)
     return;
   StreamWriter swLog;
   string log = "";
   if (!File.Exists(LogFileName))
   {
     try
     {
       swLog = new StreamWriter(LogFileName, true);
     }
     catch (Exception ex)
     {
       logs.Add(getFormattedLog(string.Format("ha habido un error al abrir el archivo: {0}",ex.Message)));
       swLog = OpenLogFileFromThread();
     }
   }
   else
   {
     try
     {
       swLog = File.AppendText(LogFileName);
     }
     catch (Exception ex)
     {
       logs.Add(getFormattedLog(string.Format("No se puede abrir el archivo para agregar, mensaje: {0}, {1}", ex.Data, ex.Message)));
       swLog = OpenLogFileFromThread();
     }
   }
   //we get the file already
   lock (logs)
   {
     working = true;
     for (int i = logs.Count - 1; i >= 0; i--)
     {
       log = logs[0];
       try
       {
         if ((maxLineLength > 0) && (log.Length > maxLineLength))
           swLog.WriteLine(log.Substring(0, maxLineLength));
         else
           swLog.WriteLine(log);
         logs.RemoveAt(0);
       }
       catch (Exception ex)
       {
         logs.Add(getFormattedLog(string.Format("Error escribiendo el archivo, mensaje: {0}", ex.Message)));
         swLog.Close();
         working = false;
         return;
       }
     }
   } 
   swLog.Close();
   working = false;
   //check the size of the file
   if (fileSize > 0)
   {
     try
     {
       FileInfo f = new FileInfo(LogFileName);
       if (f.Length > fileSize)
         logFileNumber++;
     }
     catch (Exception)
     {
       // ? do nothing
     }
   }
 }