Page 1 of 17
Log plugin
Posted: Mon Feb 06, 2012 2:58 pm
by Instructor
Просмотр логов и захват вывода приложения в реальном времени.
Watch logs or capture application output in real-time.
<<Download>>
Posted: Mon Feb 06, 2012 3:03 pm
by Instructor
FeyFre wrote:Bug report:
Панелька "Log::Output" всё равно открывается, даже если указан один из Output target флагов.
Feature request:
Код вызова для проверки процесса создания нового файла, аналогично как у Sessions.(Templates добросовестно реагирует на IDM_FILE_NEW).
Log-Rus.txt wrote: FLAGS (сумма следующих):
1 Не отображать панель вывода.
Posted: Mon Feb 06, 2012 3:37 pm
by DV
Предложение по Log::Output. В качестве окна вывода использовать не RichEdit, а AkelEdit. При этом все команды, относящиеся к одному процессу, помещать в Fold.
Пример:
Code: Select all
[+]cmd
| C:\Progs\AkelPad>echo 123
| 123
| C:\Progs\Progs\AkelPad>exit
-
[+]ipconfig
| Windows IP Configuration
| ...
|
-
Posted: Mon Feb 06, 2012 3:52 pm
by FeyFre
Да, но ожидалось что-бы он неявно применялся.

И сразу же фич-реквест вдогонку к первому: добавить запуск от имени.
Posted: Tue Feb 07, 2012 3:09 am
by Instructor
DV wrote:Предложение по Log::Output. В качестве окна вывода использовать не RichEdit, а AkelEdit.
Для AkelPad 4.x.x RichEdit == AkelEdit, иначе откуда вертикальное выделение в окне вывода?

Posted: Tue Feb 07, 2012 9:22 am
by VladSh
1. Если попытаться вызвать Log::Watch без открытого файла, то выводится сообщение "Нет файлов для просмотра.". Можно ли откорректировать сообщение так, чтобы было понятно, что файл должен быть открыт именно в редакторе (в окне редактирования), т.к. интуитивно я уже не раз перерываю все настройки на предмет кнопки выбора или поля задания пути для файла лога.
2. Непонятно, что и когда будет выводиться в Log::Output.
3. Непонятно, как сделать, чтобы при вызове Log::Watch производилась бы прокрутка в самый конец файла.
4. Прога падает.
Сценарий воспроизведения:
1). Открываю файл в окне редактирования.
2). Вызываю Log::Watch.
3). Вызываю Log::Output.
4). Просто захожу в настройки плага, ничего не меняя закрываю их.
5). Вызываю Log::Watch, выводится сообщение, что плаг остановлен.
6). Вызываю Log::Output, пытаясь скрыть консоль лога.
После п.6) Акел в первый раз вылетел, что "завершил недупустимую операцию", при повторном воспроизведении крэша раздвоилось окно Output, потом прога также вылетела.
Posted: Tue Feb 07, 2012 10:23 am
by FeyFre
2. Непонятно, что и когда будет выводиться в Log::Output.
Log-Eng.txt написано, что оно "capture output in real-time"
Например, вот такой вот вызов я для теста поставил на горячую клавишу
Code: Select all
Call("Log::Output",1,`"%comspec%" /c "E:\install\akelpad\akelpad\retai\spellcheck\source\make.bat"`,"E:\install\akelpad\akelpad\retai\spellcheck\source","(.*)","$1",-1,-1)
В результате вызова функции получаю в окошке лога прогресс компиляции плагина(а в процессах у АР появляется дочерний процесс который собственно это лог и генерирует). Так просто открывать Log::Output не намереваясь запустить внешний процесс не имеет смысла.
Posted: Tue Feb 07, 2012 10:34 am
by VladSh
А самому-то писать в окошко Log::Output можно, например, Scripts-плагином?
И непонятно, зачем 2 механизма: (1) - открывать файл в окне редактирования и смотреть как пишутся логи или (2) - выводить результаты в Log::Output тем же логом? Это просто прикол такой, "мы можем и так, и так"?
Posted: Tue Feb 07, 2012 10:49 am
by FeyFre
И непонятно, зачем 2 механизма: (1) - открывать файл в окне редактирования и смотреть как пишутся логи
Вы немножко не догнали в чем тут фича.
Ведь функция называется Log::Output а не Log::Log. Название не ограничивает использование лишь в качестве просмотра логов работы какого-то приложения. Вот есть у нас функция Format::SortStrAsc, что делает - сортирует строки.
А теперь делаем такой вызов
Code: Select all
Call("Log::Output", 1, `"%systemroot%\system32\sort.exe"`, "", "", "", -1, -1, 1052672)
и получаем тот же эффект.
Теперь не трудно догадаться что вместо sort.exe можно поставить что-то типа c:\gunwin32\bin\sed.exe -f my-super-sed-script или c:\gunwin32\bin\gawk.exe -f my-super-gawk-script и получаем мощнейшую тулзу для обработки текста.(погуглите что умеют sed/awk)
Posted: Tue Feb 07, 2012 3:21 pm
by Instructor
VladSh wrote:4. Прога падает...
Исправлено.
Posted: Tue Feb 07, 2012 3:37 pm
by Instructor
Изменено: сообщение, при явной остановке плагина, не отображается (Log::Watch).
Добавлено: возможность не прокручивать документ при обновлении (Log::Watch).
Исправлено: выгрузка Log::Watch при работающем Log::Output.
Changed: when plugin stopped manually the message is not displayed (Log::Watch).
Added: option to not scroll document when updating (Log::Watch).
Fixed: Log::Watch unloading when Log::Output is working.
Log plugin v1.1
Posted: Tue Feb 07, 2012 3:42 pm
by private_joker
FeyFre
Можно проще ответить было - перенаправление консольного вывода
VladSh
Если Вы с IDE работали когда-нибудь, то могли заметить, что везде есть output: при компиляции, отладке, etc. Т.е. раньше ,я например, собирал проект командами в консоли или батниками (ну помимо самой IDE). Сейчас можно открыть тот же батник, править по ходу дела собирать и контролировать процесс в одной программе. Применений этому масса, я лишь сказал как я намерен использовать.
Instructor
Спасибо за плагин. Ну раз уж контрол свой может можно будет строки с варнингами и ошибками в выводе выделять цветом (ошибки красным, варнинги серым например)?
И еще одно: может для нижней панели пора табы делать? В одной вывод, в другой еще что-нибудь.
P.S. Скоро так дозреете до файлов проектов для акелпада

Posted: Tue Feb 07, 2012 3:49 pm
by private_joker
Вдогонку: в поле директория (по кнопке запуск) сделать выбор этой директории баттоном.
Еще: поле комманда (по кнопке запуск) сделать едиткомбобоксом с опцией "запоминать последние N комманд" (в поле директория тоже хорошо бы)

Posted: Tue Feb 07, 2012 5:03 pm
by Infocatcher
Надо бы добавить поддержку переменных окружения.
А то
C:\Windows\system32\cmd.exe /c tree c:\
выводит, а
%ComSpec% /c tree c:\
– ни в какую:
Не удается запустить команду: %ComSpec% /c tree c:\
Posted: Tue Feb 07, 2012 6:42 pm
by FeyFre
Infocatcher
Code: Select all
Call("Log::Output",1,'%comspec% /c "e:\install\akelpad\AkelPad\retail\spellcheck\Source\make.bat"',"e:\install\akelpad\AkelPad\retail\spellcheck\Source","(.*)","$1",-1,-1,2097152)
Работает
Code: Select all
Call("Log::Output",1,'%comspec% /c tree c:\')
Работает.
Я выше не от фонаря родил пример. Так что это особенности Вашей системы(Моя XPSP3)