/// <summary> /// Initializes a new instance of the <see cref="MutexMultiProcessFileAppender" /> class. /// </summary> /// <param name="fileName">Name of the file.</param> /// <param name="parameters">The parameters.</param> public MutexMultiProcessFileAppender(string fileName, ICreateFileParameters parameters) : base(fileName, parameters) { try { _mutex = CreateSharableMutex("FileLock"); _fileStream = CreateFileStream(true); _fileCharacteristicsHelper = FileCharacteristicsHelper.CreateHelper(parameters.ForceManaged); } catch { if (_mutex != null) { _mutex.Close(); _mutex = null; } if (_fileStream != null) { _fileStream.Close(); _fileStream = null; } throw; } }
/// <summary> /// Initializes a new instance of the <see cref="WindowsMultiProcessFileAppender" /> class. /// </summary> /// <param name="fileName">Name of the file.</param> /// <param name="parameters">The parameters.</param> public WindowsMultiProcessFileAppender(string fileName, ICreateFileParameters parameters) : base(fileName, parameters) { try { CreateAppendOnlyFile(fileName); _fileCharacteristicsHelper = FileCharacteristicsHelper.CreateHelper(parameters.ForceManaged); } catch { if (_fileStream != null) { _fileStream.Dispose(); } _fileStream = null; throw; } }