Как записать в файл лога только ошибки?
Вероятно вы уже встречали не совсем очевидные знаки типа 2>&1
Давайте разберемся что это и как этим пользоваться.
Что бы понимать какие вообще есть потоки, приведу следующую таблицу:
0 | stdin | Стандартный ввод |
1 | stdout | Стандартный вывод |
2 | stderr | Стандартный вывод ошибок |
Для перенаправления потока
используется комбинация знаков «больше» и амперсанд: >&
Пример:
taskkill -im programm.exe 2>&1
Варианты перенаправления
Перенаправление в файл
команда 2> файл
Таким образом мы перенаправляем более узкий набор данных(поток ошибок) в более общий(стандартный поток вывода), что бы направить в файл всю имеющуюся информацию, которую в последствии можно использовать для отладки.
Перенаправление потока в другой поток
команда 2>&1
Использование конструкции 1>&2 не предусмотрено, так как не имеет смысла.
Перенаправление с добавлением
Одинарный знак «>» заменяется на двойной и позволяет записывать вывод потока в конец файла
команда 2>> файл
Перенаправление в Null
С помощью перенаправления потока в Null можно убрать из вывода содержимое этого потока.
команда 2>null