Как перенаправить stdout и stderr в скользящий файл с перенаправлением Unix - PullRequest
3 голосов
/ 08 февраля 2012

У меня есть Java-приложение, которое я запускаю на Unix из командной строки. Я перенаправляю stdout и stderr в файлы console.out и console.err. Размер файла увеличивается, потому что регистрируется много информации.

Я хочу создать скользящий файл, когда размер файла увеличивается выше определенного размера, например, console1.out должно быть создано, если размер console.out превышает 500 КБ. В настоящее время я использую

java MyAppName > logs/Console.out 2> logs/Console.err &

Как я могу это сделать?

Ответы [ 2 ]

6 голосов
/ 08 февраля 2012

Передать результат для разделения следующим образом:

java MyAppName | split -b500k - Console.log

Это создаст новый файл каждый раз, когда вы превышаете 500К.См. Man-страницу для split для более подробной информации и опций.

1 голос
/ 20 ноября 2018

Или вы можете использовать rotatelogs

nohup java MyAppName 2>&1 | rotatelogs -l Console_%Y-%m-%d.log 86400 &

Это создаст новый файл с сегодняшней датой каждый день

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...