關於我之前的question,我發現maven無法真正輸出jboss控制檯。所以我想我想解決它。這是處理:不斷讀取附加到日誌文件的行
雖然jboss運行時,它將控制檯日誌寫入server.log文件,所以我試圖檢索數據,因爲它每隔幾秒鐘文件就會被jboss更改/更新我遇到了一些困難,所以我需要幫助。
我實際上需要的是:
- 讀取文件的server.log
- 時的server.log與添加幾行輸出的變化
這裏是到目前爲止的代碼改變我得到了,它有一個問題,它無限期地運行,並且每次從文件開始時都會啓動,我希望它繼續從server.log中打印新行。希望它有一定道理這裏是代碼:
import java.io.*;
class FileRead
{
public static void main(String args[])
{
try{
for(;;){ //run indefinitely
// Open the file
FileInputStream fstream = new FileInputStream("C:\\jboss-5.1.0.GA\\server\\default\\log\\server.log");
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null) {
// Print the content on the console
System.out.println (strLine);
}
//Close the input stream
in.close();
}
}
catch (Exception e){//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
}
按照蒙特克里斯托建議我這樣做:
import java.io.*;
class FileRead {
public static void main(String args[]) {
try {
// Open the file that is the first
// command line parameter
FileInputStream fstream = new FileInputStream(
"C:\\jboss-5.1.0.GA\\server\\default\\log\\server.log");
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String line;
// Read File Line By Line
while ((line = br.readLine()) != null) {
// Print the content on the console
line = br.readLine();
if (line == null) {
Thread.sleep(1000);
} else {
System.out.println(line);
}
}
// Close the input stream
in.close();
} catch (Exception e) {// Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
}
它仍然沒有工作,它只是打印的原始文件。雖然文件不斷變化沒有任何反應..沒有打印出來,除了原始的日誌文件。
下面是解: TNX Montecristo
import java.io.*;
class FileRead {
public static void main(String args[]) {
try {
FileInputStream fstream = new FileInputStream(
"C:\\jboss-5.1.0.GA\\server\\default\\log\\server.log");
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
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());
}
}
}
另見:
http://vanillajava.blogspot.co.uk/2012/08/java-memes-which-refuse-to-die.html
Dup of http://stackoverflow.com/question s/557844/java-io -unix-linux-tail -f- – skaffman 2010-02-10 16:24:54
@skaffman不是重複的..我仍然沒有得到我的答案..我需要這個不斷運行 – ant 2010-02-10 16:28:27
接受的答案在由我和skaffman鏈接鏈接不斷運行... – 2010-02-10 16:37:13