Make Logfile more thread save
This commit is contained in:
1 parent
149026ec32
commit
24ca4edab7
1 file changed
+19
-10
+19
-10
@@ -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)
|
||||||
|
|||||||
Reference in new issue
Block a user