private static TextWriter TryOpenFileOnce(FilePath file, FileLogSettings settings) { try { var directory = Path.GetDirectoryName(file.NormalizedPath); if (directory != null && !Directory.Exists(directory)) { Directory.CreateDirectory(directory); } var fileMode = settings.FileOpenMode == FileOpenMode.Append ? FileMode.Append : FileMode.Create; var stream = new FileStream(file.NormalizedPath, fileMode, FileAccess.Write, settings.FileShare, 1); return(new StreamWriter(stream, settings.Encoding, settings.OutputBufferSize, false)); } catch (Exception error) { SafeConsole.ReportError($"Failed to open log file '{file}':", error); return(null); } }
public TextWriter OpenFile(FilePath file, FileOpenMode fileOpenMode, Encoding encoding, int bufferSize) { try { var directory = Path.GetDirectoryName(file.NormalizedPath); if (directory != null && !Directory.Exists(directory)) { Directory.CreateDirectory(directory); } var fileMode = fileOpenMode == FileOpenMode.Append ? FileMode.Append : FileMode.Create; var stream = new FileStream(file.NormalizedPath, fileMode, FileAccess.Write, FileShare.ReadWrite, 1); return(new StreamWriter(stream, encoding, bufferSize, false)); } catch (Exception error) { SafeConsole.ReportError($"Failed to open log file '{file}':", error); return(null); } }