2010-12-16 6 views
25

У меня есть пакетный файл, который вызывает программу java.Добавление вывода командного файла К журнальному файлу

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

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

+1

Как вы перенаправляете вывод ТАКЖЕ на консоль, а также в файл журнала? – djangofan 2012-09-20 17:32:27

ответ

70

Вместо использования ">" для перенаправления так:

java Foo > log 

использование ">>" для добавления нормального "стандартный вывод" выход на новый или существующий файл:

java Foo >> log 

Однако, если вы также хотите захватить ошибки «stderr» (например, почему программа Java не может быть запущена), вы также должны использовать тег «2> & 1», который перенаправляет «stderr» («2») на «stdout» "(" 1 "). Например:

java Foo >> log 2>&1 
+0

Спасибо, «>>» работал ..... также не могли бы вы рассказать мне, какие строки я должен добавить в свой пакетный файл w он запустит его после каждых 30 минут ..... вместе с отметкой времени! – 2010-12-16 07:13:55

4

Это не ответ на исходный вопрос: «Добавляя выход пакетного файла в лог-файл»

Для справки, это ответ на ваш следующий вопрос: «Какие строки следует добавить к моему пакетному файлу, который заставит его выполнить каждые 30 минут?»

(Но я бы совет Джона Скита: "Вы, наверное, не должны делать это в пакетный файл - вместо того, чтобы использовать планировщик задач")

Timeout:

Пример (1 секунда):

TIMEOUT /T 1000 /NOBREAK

сна:

Пример (1 секунда):

sleep -m 1000

Альтернативные методы:

Вот ответ на 2-й вопрос Последующие: «Вместе с Timestamp?"

Create a date and time stamp in your batch files

. Пример:

echo *** Date: %DATE:/=-% and Time:%TIME::=-% *** >> output.log

1

Использование log4j в вашей Java программы вместо этого вы можете вывод на нескольких носителях, создавать качению журналы и т.д., и включают в себя временные метки, имена классов и

Смежные вопросы