/// <summary> /// <para>Initialization method, used by constructors, creates folder for tab, inits filenames</para> /// <para>Метод инициализации, используемый всеми конструкторами. /// Создаёт папку под вкладку, задаёт имена файлов.</para> /// </summary> /// <param name="type"></param> protected void Init(TabTypes type) { TabType = type; if (TabType != TabTypes.CUSTOM) { TabTypeString = type.ToString(); } else { TabTypeString = CustomTabType; } if (IsAllTab()) { _dirname = Log9KCore.Settings.Folder + "/" + Log9KUtil.GetDayMonthYearString() + "/"; } else if (IsInnerLogTab()) { _dirname = Log9KCore.Settings.Folder + "/" + Log9KUtil.GetDayMonthYearString() + "/" + "." + Log9KCore.INNER_LOG_TAB; } else { _dirname = Log9KCore.Settings.Folder + "/" + Log9KUtil.GetDayMonthYearString() + "/" + TabTypeString; } if (IsAllTab()) { Log9KUtil.CreateDirIfNotExists(_dirname); _directoryNotCreated = false; } FilenameLogFile = _dirname + "/" + Log9KUtil.GetDayMonthYearHourMinuteSecondString() + Log9KCore.LOG_EXTENSION; try { // ReSharper disable once ReturnValueOfPureMethodIsNotUsed Path.GetFullPath(FilenameLogFile); } catch (Exception e) { Log9KCore.InnerLog("Ошибка: что-то не так с именем файла — " + e.Message, true); } FilenameTempFile = FilenameLogFile + Log9KCore.TEMP_LOG_EXTENSION; DuplicationsDictionary = new Dictionary <int, DuplicationNode>(); InitCollection(); InitTabHeader(); }
/// <summary> /// Append log entry ToString to current tab's log file /// </summary> /// <param name="entry"></param> private void AppendEntryToFile(Log9KEntry entry) { if (_directoryNotCreated) { Log9KUtil.CreateDirIfNotExists(_dirname); _directoryNotCreated = false; } if (Application.Current == null) { return; } Application.Current.Dispatcher.BeginInvoke( new Action(() => { Log9KUtil.AppendStringToFile(FilenameLogFile, entry.ToString()); }), DispatcherPriority.Background ); }