Make Logfile more thread save

This commit is contained in:
Flamefire committed 2014-03-09 19:49:06 +01:00
1 parent 149026ec32
commit 24ca4edab7
1 file changed
+19 -10
+19 -10
View File
@@ -28,6 +28,7 @@ namespace Vocaluxe.Base
private readonly string _LogFileName; private readonly string _LogFileName;
private readonly string _LogName; private readonly string _LogName;
private StreamWriter _LogFile; private StreamWriter _LogFile;
private Object _FileMutex = new Object();
public CLogFile(string fileName, string logName) public CLogFile(string fileName, string logName)
{ {
@@ -37,23 +38,31 @@ namespace Vocaluxe.Base
private void _Open() private void _Open()
{ {
_LogFile = new StreamWriter(Path.Combine(CSettings.DataPath, _LogFileName), false, Encoding.UTF8); lock (_FileMutex)
{
if (_LogFile != null)
return;
_LogFile = new StreamWriter(Path.Combine(CSettings.DataPath, _LogFileName), false, Encoding.UTF8);
_LogFile.WriteLine(_LogName + " " + CSettings.GetFullVersionText() + " " + DateTime.Now); _LogFile.WriteLine(_LogName + " " + CSettings.GetFullVersionText() + " " + DateTime.Now);
_LogFile.WriteLine("----------------------------------------"); _LogFile.WriteLine("----------------------------------------");
_LogFile.WriteLine(); _LogFile.WriteLine();
}
} }
public void Close() public void Close()
{ {
if (_LogFile == null) lock (_FileMutex)
return;
try
{ {
_LogFile.Flush(); if (_LogFile == null)
_LogFile.Close(); return;
try
{
_LogFile.Flush();
_LogFile.Close();
}
catch (Exception) {}
} }
catch (Exception) {}
} }
public void Add(string text) public void Add(string text)