Bonjour, je suis sur Netbeans et j'essaie de lire un fichier log d'un serveur d'application en temps réel. Alors, quelle est la méthode simple pour savoir qu'une nouvelle ligne a été insérée dans le fichier log afin d'éxecuter une action? en JAVA
Version imprimable
Bonjour, je suis sur Netbeans et j'essaie de lire un fichier log d'un serveur d'application en temps réel. Alors, quelle est la méthode simple pour savoir qu'une nouvelle ligne a été insérée dans le fichier log afin d'éxecuter une action? en JAVA
Salut essaies ceci:
EricCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 String[] args = new String[]{"messages.log"}; System.out.println(args); if (args.length > 0) { if (args.length > 1) sleepTime = Long.parseLong(args[1]) * 1000; BufferedReader input = new BufferedReader(new FileReader(args[0])); String currentLine = null; while (true) { if ((currentLine = input.readLine()) != null) { System.out.println(currentLine); continue; } try { Thread.sleep(sleepTime); } catch (InterruptedException e) { Thread.currentThread().interrupt(); break; } } input.close(); } else { System.out.println( "Missing parameter!\nUsage: java JavaTail fileName [updateTime (Seconds. default to 1 second)]"); }
Tu peux aussi regarder du côté du Watch Service API de java.nio.file
D'après Oracle :
C'est plus lourd que la solution de jeffray03 et je n'ai pas testé java.nio.file en production.Citation:
The Watch Service API is designed for applications that need to be notified about file change events.
Mais cela a l'air prometteur dans la mesure où il devrait réagir à chaque changement dans le fichier log que tu veux surveiller.
Hello,
l'exemple de code que tu montres ne surveille aucun changement de fichier. Il lit le fichier tel qu'il est, une fois. Puis c'est fini, le fichier est oublié. Le programme tourne en boucle sans rien faire.