Дублирование всего консольного вывода во внешний файл
Дублирование всего консольного вывода во внешний файл
Очень сильно не хватает такой фишки, как дублирование всего консольного вывода во внешний файл.
Идеально было бы так:
В настройках указываем, что весь консольный вывод должен дублироваться в "такую-то" папку, файл создавать чистый раз в день (час, неделю, год...), хранить в этой папке логи за неделю (месяц, 20 дней....). Затем ставим галочку "Дублирование включено", и после этого, весь вывод любых программ, запущенных из командной строки far, попадает в логи. Которые при необходимости смотрим.
Я знаю, что есть опция /w, я знаю про перенаправление вывода... Но как часто бывало так что информация жизненно необходимая для анализа происходящего находится выше, а не перенаправление, не /w - не включено... И команду второй раз не запустишь (это особенно актуально для запуска всяких "одноразовых" скриптов по обработке каких либо данных в субд...).
Идеально было бы так:
В настройках указываем, что весь консольный вывод должен дублироваться в "такую-то" папку, файл создавать чистый раз в день (час, неделю, год...), хранить в этой папке логи за неделю (месяц, 20 дней....). Затем ставим галочку "Дублирование включено", и после этого, весь вывод любых программ, запущенных из командной строки far, попадает в логи. Которые при необходимости смотрим.
Я знаю, что есть опция /w, я знаю про перенаправление вывода... Но как часто бывало так что информация жизненно необходимая для анализа происходящего находится выше, а не перенаправление, не /w - не включено... И команду второй раз не запустишь (это особенно актуально для запуска всяких "одноразовых" скриптов по обработке каких либо данных в субд...).
- Kerberos464
- Posts: 1239
- Joined: Wed 29 Jul, 2009 20:24
- Location: Saint-Petersburg
- Has thanked: 19 times
- Been thanked: 1 time
Re: Дублирование всего консольного вывода во внешний файл
кстати, да, полезная штука была бы.
поддерживаю.
поддерживаю.
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.
Re: Дублирование всего консольного вывода во внешний файл
Ну-ну... интересно что вам скажут )
а вообще, что-то похожее (для последней команды) давно в conemu есть.
а вообще, что-то похожее (для последней команды) давно в conemu есть.
Re: Дублирование всего консольного вывода во внешний файл
Последняя команда - это не совсем то, что нужно. Например в случае Ctrl+G (пакетная обработка) хочется что бы сохранился вывод для всех выполненных команд.Maximus5 wrote:а вообще, что-то похожее (для последней команды) давно в conemu есть.
Re: Дублирование всего консольного вывода во внешний файл
kraser wrote:И команду второй раз не запустишь (это особенно актуально для запуска всяких "одноразовых" скриптов по обработке каких либо данных в субд...).
Присоединяюсь. Такая фича нашла бы своего пользователя, тем более включаемая. Единственная проблема это что делать если в двух или более консолях FAR-а одновременно выполняются внешние команды? Если сливать все в один файл, то потом не разберешь какая строчка от какой команды, а если делать при запуске FAR-а новый файл, то как потом найти нужный, и кто будет заниматься чисткой всего этого добра, - планировщик, типа удалять старше N дней? Фича полезная и ньюансов много. Нужно все продумать.kraser wrote:Последняя команда - это не совсем то, что нужно. Например в случае Ctrl+G (пакетная обработка) хочется что бы сохранился вывод для всех выполненных команд.
Re: Дублирование всего консольного вывода во внешний файл
История команд (Alt+F8) - идеальное место!
- Нажимаем на выбранной команде F3 (к примеру) и смотрим ее вывод во встроенном вьювере
- Рядом с командой "галочкой" можно пометить, есть ли для нее сохраненный вывод
- Вывод каждой команды - в отдельном файле
- Определяем срок хранения логов, в днях например. Все что старше - автоматически удаляются
Re: Дублирование всего консольного вывода во внешний файл
Не плохо. Такое наверное можно и плагином реализовать (AltHistory/MoreHistory). Правда для каждодневных команд файл, я так понимаю, лог будет просто накапливаться и чисто по дате уже не почистить, нужно будет еще прокрутку лога на максимальное количество строк предусмотреть или типа того.kraser wrote:История команд (Alt+F8) - идеальное место!
- Нажимаем на выбранной команде F3 (к примеру) и смотрим ее вывод во встроенном вьювере
- Рядом с командой "галочкой" можно пометить, есть ли для нее сохраненный вывод
- Вывод каждой команды - в отдельном файле
- Определяем срок хранения логов, в днях например. Все что старше - автоматически удаляются
Re: Дублирование всего консольного вывода во внешний файл
Да, фича неплохая.
А разделять вывод от разных сессий фара можно, формируя имя файла с логом от команды по id команды, которая хранится в истории команд (какой-то id ведь у нее есть?), т.е. примерно так:
А разделять вывод от разных сессий фара можно, формируя имя файла с логом от команды по id команды, которая хранится в истории команд (какой-то id ведь у нее есть?), т.е. примерно так:
584_20120512.log
585_20120512.log
586_20120512.log
...
902_20120513.log
903_20120513.log
^^^ id команды из истории команд
- HaRT
- Moderator
- Posts: 10863
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Re: Дублирование всего консольного вывода во внешний файл
А отчего все так зациклились на хранении логов в текстовых файлах?! Как хранить — это чисто технический вопрос, который должен решаться исходя из соображений целесообразности. Лишь бы была возможность просто получить выборку по заданным параметрам: временнОму диапазону, сеансу/пользователю и пр.
Фар есть инструмент, а не нянька. © 2009 DrKnS
- Centaur
- Posts: 1083
- Joined: Tue 05 Apr, 2005 20:09
- Location: Novosibirsk, Russia
- Been thanked: 2 times
Re: Дублирование всего консольного вывода во внешний файл
Ну не в БД же?…HaRT wrote:А отчего все так зациклились на хранении логов в текстовых файлах?!
Да, и эта выборка должна мочь быть стандартным вводом для любой утилиты-фильтра (head/tail, grep, sed, awk). Что оставляет совсем немного вариантов реализации.HaRT wrote:Лишь бы была возможность просто получить выборку по заданным параметрам: временнОму диапазону, сеансу/пользователю и пр.
- HaRT
- Moderator
- Posts: 10863
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Re: Дублирование всего консольного вывода во внешний файл
Почему нет? Разумеется, при условии, что ресурсоёмкость будет приемлемая.Centaur wrote:Ну не в БД же?…HaRT wrote:А отчего все так зациклились на хранении логов в текстовых файлах?!
Само собой, вариантом выдачи по умолчанию должен быть исходный вывод verbatim. На мой взгляд, это никак не ограничивает свободу в принятии решений об организации хранения.Centaur wrote:эта выборка должна мочь быть стандартным вводом для любой утилиты-фильтра (head/tail, grep, sed, awk). Что оставляет совсем немного вариантов реализации.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Re: Дублирование всего консольного вывода во внешний файл
tee - неплохо, но не автоматически. Нужно постоянно вспоминать о том, что в конце командной строки нужно дописать "| tee filename". И когда я точно знаю, что вывод мне нужен, я делаю явное перенаправление (например так: view: < COMMAND). Хотелось бы что бы это было для всех команд автоматически.Max Rusov wrote:Что то я сомневаюсь, что это вообще возможно, без извратов (типа ConEmu). Пользуйтесть tee.
Вот пришло в голову... Может сделать шаблон командной строки? Например задается шаблон "$cm | tee filename.txt", вместо $cm подставляется то, что пользователь ввел и выполняется.
- HaRT
- Moderator
- Posts: 10863
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Re: Дублирование всего консольного вывода во внешний файл
Повесьте на Enter макрос, который дописывает в конец командной строки “ | tee.exe -a Y:\our\Global\Log.File” и лишь затем собственно „нажимает” Enter, — будет неплохое начальное приближение.kraser wrote:Может сделать шаблон командной строки? Например задается шаблон "$cm | tee filename.txt", вместо $cm подставляется то, что пользователь ввел и выполняется.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Re: Дублирование всего консольного вывода во внешний файл
Вариант с макросом на tee в принципе не плох, а при творческом подходе, даже хорош - при развитом макросе можно и время сохранить и почистить (идея мне понравилась попробую реализовать, для академического интереса и параллельно на lua ), но как же посмотреть вывод конкретной команды - это усложнит макрос ещё на порядок... и в итоге, это будет не макрос, а скрипт на пяток страниц...
в фаре это было бы проще ИМХО как предлагалось с меню команд, да и хранить можно в базе вместе с историей.
Однако, большое НО : как отделить то для чего нужно хранить вывод, а для чего нет? У меня есть проги которые выводят в консоль мегабайты инфы!
в фаре это было бы проще ИМХО как предлагалось с меню команд, да и хранить можно в базе вместе с историей.
Однако, большое НО : как отделить то для чего нужно хранить вывод, а для чего нет? У меня есть проги которые выводят в консоль мегабайты инфы!
SimSU ··· ·· -- ··· ··-