Очистить представление журнала ошибок Eclipse из моего плагина - PullRequest
0 голосов
/ 27 июля 2011

Я работаю над плагином Eclipse RCP. Одна из команд в плагине выполняет некоторую проверку данных и регистрирует сообщения в представлении Eclipse Error Log.

Я бы хотел, чтобы команда очистила журнал ошибок до того, как она начнет свою работу, чтобы после ее завершения журнал ошибок содержал только ошибки, относящиеся к последнему ее вызову.

Я обнаружил, что могу удалить сам файл журнала, выполнив следующее:

Platform.getLogFileLocation().toFile().delete();

Однако, как и следовало ожидать, журнал ошибок не обновляет свое содержимое только потому, что я пробрался за его спину и удалил этот файл.

Я ковырялся в org.eclipse.ui.internal.views.log.LogView, и хотя я вижу места, где само представление обновляется, я не вижу простого способа вызвать "очистить и обновить".

Есть ли способ попросить журнал ошибок дважды проверить файл резервной копии и обновить себя? Или есть более «разумный» способ очистить вид?

Обновление: Один слегка хитрый способ заставить журнал обновляться самостоятельно - записать что-то еще .

В настоящее время я записываю сообщение «info» сразу после того, как удаляю старый файл журнала, который не идеален, но теперь он достаточно близко к тому месту, где я хочу быть:

Platform.getLogFileLocation().toFile().delete();
Plugin plugin = Plugin.getPlugin();
ILog log = plugin.getLog();
log.log(new Status(IStatus.INFO, Plugin.PLUGIN_ID, "Starting utility validation pass..."));

1 Ответ

1 голос
/ 27 июля 2011

Сначала вы сказали, что создаете продукт RCP.Просмотр журнала происходит из плагина PDE, поэтому, если вы намеренно не укажете его в RCP, он никогда не будет доступен для ваших пользователей.Обратите внимание, что ваша конфигурация запуска разработки может включать ее как часть запуска, но она может не входить в ваш фактический RCP.

На ваш вопрос - я не вижу простого способа сделать это без серьезного взломачастным / защищенным членам класса LovView.Если вы намереваетесь включить LogView в ваш RCP, вы можете рассмотреть возможность расширения LogView и предоставить метод для удаления журнала (или вызвать 'protected' reloadLog () сразу после удаления файла журнала).

Надеюсь, что поможет

...