void on_button_logs_folder_open_clicked(object o, EventArgs args) { string dir = UtilAll.GetLogsDir(); LogB.Information(dir); if (!new System.IO.DirectoryInfo(dir).Exists) { try { Directory.CreateDirectory(dir); } catch { new DialogMessage(Constants.MessageTypes.WARNING, Catalog.GetString("Cannot create directory.") + "\n\n" + dir); return; } } try { System.Diagnostics.Process.Start(dir); } catch { new DialogMessage(Constants.MessageTypes.WARNING, Constants.DirectoryCannotOpen + "\n\n" + dir); } }
//on Windows since 1.4.10 public static void Start() { //first define console will be used. //if writer is created ok, then console will NOT be used useConsole = true; //create dir if not exists string dir = UtilAll.GetLogsDir(); if (!Directory.Exists(dir)) { try { Directory.CreateDirectory(dir); } catch { return; } } string filename = UtilAll.GetLogFileCurrent(); string filenameOld = UtilAll.GetLogFileOld(); //if exists, copy to old if (File.Exists(filename)) { try { File.Copy(filename, filenameOld, true); //can be overwritten } catch {} } /* * try { * writer = File.CreateText(filename); * useConsole = false; * } catch {} */ //this does not write until exit //StreamWriter sw = new StreamWriter(new BufferedStream(new FileStream(UtilAll.GetLogFileCurrent(), FileMode.Create))); //this writes all the time StreamWriter sw = new StreamWriter(new FileStream(UtilAll.GetLogFileCurrent(), FileMode.Create)); System.Console.SetOut(sw); System.Console.SetError(sw); sw.AutoFlush = true; }