Подтвердить что ты не робот

Добавление вывода командного файла в файл журнала

У меня есть пакетный файл, который вызывает java-программу.

Выход перенаправляется в файл журнала в том же каталоге. Однако файл журнала заменяется каждый раз, когда командный файл запускается...

Я хотел бы сохранить старые выходы в файле журнала и всегда добавлять новый вывод в файл журнала.

4b9b3361

Ответ 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. Затем вы можете выводить на несколько носителей, создавать скользящие журналы и т.д. И включать отметки времени, имена классов и номера строк.