Я сейчас просматриваю свои файлы журналов, подобные этому tail -f
, и время от времени я нажимаю клавишу и нажимаю кнопку «вернуться», чтобы новые изменения в лог-печати в консоли, как заставить его распечатывать себя при изменении в файле журнала? Вот требование:Как создать сценарий оболочки для журналов
START loop
1. Check file.log
2. If file.log has changed print the changes
3. else print nothing
END
я написал что-то подобное для окон, чтобы выполнить из Java:
import java.io.FileInputStream;
import java.io.DataInputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
class LogWatch {
public static void main(String args[]) {
try {
FileInputStream fstream = new FileInputStream("C:\\file.log");
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String line;
while (true) {
line = br.readLine();
if (line == null) {
Thread.sleep(500);
} else {
System.out.println(line);
}
}
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
}
}
}
Какая ненужно накладные расходы, так как это может быть сделано из сценария оболочки, есть ли какие-либо предложения, как сделать это ?
Errr ... '-f' переключатель означает«Следовать», любые изменения должны быть напечатаны на консоль автоматически (если файл не будет удален (или перемещены) и новый один с тем же именем создается, в котором в случае, если вам нужно будет выполнить следующее и начать снова (но вы не говорите, что вам нужно прекратить процесс). – Quentin