2012-03-24 4 views
0

Потому что вы не можете redirect GC logs Я остаюсь с возможностью перенаправить его в файл с -Xloggc, а затем получить содержимое этого файла внутри моего селектора через какой-то канал с файлами. В основном, когда строки добавляются в мой файл, селектор запускается для их чтения. Таким образом, я могу получить журналы GC программно. Можно ли это сделать с помощью NIO?Как связать файл с помощью селектора NIO, другими словами, по мере добавления строк в файл выбран канал, чтобы вы могли читать строки?

ответ

0

№ файла FileChannel не расширяет SelectableChannel, поэтому вы не можете выбрать его, и даже на C, где вы можете, select() не доставляет читаемые события, когда файл расширен (он поставляет их каждый раз, когда вы выбираете , так как файл всегда читается).

0

Учитывая, что журналы GC буферизованы, я бы не стал беспокоиться о некоторой задержке. Вы можете периодически проверять длину файла и каждый раз считывать данные. Вы можете сделать это в IO, NIO или NIO2.