1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
/// <summary>
/// Ecrit une ligne de texte précédée de la date et heure correspondant
/// au format définit dans le fichier de configuration.
/// </summary>
/// <param name="textLine">Ligne de texte a écrire dans le fichier log</param>
public void WriteLog(String textLine)
{
try
{
Monitor.TryEnter(_lock);
//Si le jour a changé, alors on change de fichier
if (_currDate != GetDateFormat())
{
//Fermeture du flux précédent (ouvert)
_sw.Close();
//Création du chemin du fichier
_currDate = GetDateFormat();
_fi = new FileInfo(String.Format(@"{0}\{1}{2}", _basedir.FullName, _currDate, _config["FileExtension"].ToString()));
//Ouverture du fichier
_sw = new StreamWriter(new FileStream(_fi.FullName, FileMode.Append, FileAccess.Write, FileShare.ReadWrite));
//Avertissement console d'un changement de fichier
Console.WriteLine("\tLogfile: Changement de fichier log: {0}", _fi.FullName);
}
String buffer = String.Format("{0} - {1}", DateTime.Now.ToString(_config["LineTimeFormat"].ToString()), textLine);
//Ecriture dans le fichier
_sw.WriteLine(buffer);
_sw.Flush();
Monitor.Exit(_lock);
}
catch (IOException e)
{
Console.WriteLine("\tLogFile: Erreur d'écriture {0}",e.Message);
}
catch (Exception e)
{
Console.WriteLine("\tLogFile: Erreur d'écriture critique {0}",e.Message);
}
}
/// <summary>
/// Retourne la date au format Spécifié dans le fichier de config (FileTimeFormat)
/// </summary>
/// <returns></returns>
private String GetDateFormat()
{
return DateTime.Now.ToString(_config["FileTimeFormat"].ToString());
} |
Partager