Добавление вывода командного файла в файл журнала
У меня есть пакетный файл, который вызывает java-программу.
Выход перенаправляется в файл журнала в том же каталоге.
Однако файл журнала заменяется каждый раз, когда командный файл запускается...
Я хотел бы сохранить старые выходы в файле журнала и всегда добавлять новый вывод в файл журнала.
Ответы
Ответ 1
Вместо того, чтобы использовать " > " для перенаправления следующим образом:
java Foo > log
используйте " → " для добавления обычного вывода "stdout" в новый или существующий файл:
java Foo >> log
Однако, если вы также хотите зафиксировать ошибки "stderr" (например, почему программа Java не может быть запущена), вы также должны использовать тег "2 > & 1", который перенаправляет "stderr" ( "2" ) на "stdout" ( "1" ). Например:
java Foo >> log 2>&1
Ответ 2
Это не ответ на ваш первоначальный вопрос: "Добавление вывода командного файла в файл журнала?"
Для справки, это ответ на ваш следующий вопрос: "Какие строки я должен добавить в свой пакетный файл, который заставит его выполнить через каждые 30 минут?"
(Но я бы взял совет Джона Скита: "Возможно, вы не должны этого делать в своем пакетном файле, вместо этого используйте" Планировщик заданий ".)
Время ожидания:
Пример (1 секунда):
TIMEOUT /T 1000 /NOBREAK
Сон:
Пример (1 секунда):
sleep -m 1000
Альтернативные методы:
Вот ответ на ваш второй вопрос: "Наряду с отметкой времени?"
Создайте метку даты и времени в пакетных файлах
Пример:
echo *** Date: %DATE:/=-% and Time:%TIME::=-% *** >> output.log
Ответ 3
Вместо этого используйте log4j в вашей программе java. Затем вы можете выводить на несколько носителей, создавать скользящие журналы и т.д. И включать отметки времени, имена классов и номера строк.