2016-07-08 24 views
1

我有應用程序不斷收聽端口,如果有任何請求來處理併發送響應back.I已重定向到一個文本文件的程序System.out.println 。我希望該文件能夠每天推出。但是我不會在上午12點看到推出。有時會發生部署,有時日誌會附加到昨天的文件本身。下面給出的代碼片段。設置文件沒有得到每天根據日期生成

import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.PrintStream; 
import java.net.ServerSocket; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

public class MBServ { 
public static void main(String[] args) throws IOException { 
    ServerSocket serverSocket = null; 
    boolean listening = true; 
    String request_date = null; 
    String request_time = null; 
    String logFile="MBServ_"; 
    ConnectServiceInfo fiServiceInfo = ConnectServiceInfo.getInstance(); 
    ConnectServiceInfo fiservice = fiServiceInfo.getInstance(); 
    try { 
     serverSocket = new ServerSocket(1122); 


    } catch (IOException e) { 

     System.exit(-1); 

    } 

    while (listening) { 

     Date date = new Date(); 
     SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); 
     request_date = sdf.format(date); 
     logFile="MBServ_"+request_date+".log"; 
     System.setOut(new PrintStream(new FileOutputStream(logFile,true))); 

     new MBServT(serverSocket.accept(), fiservice).start(); 
     } 

    serverSocket.close(); 
    } 
    } 
+0

你有任何錯誤或異常? –

+0

沒有錯誤/ exception.But日誌正在追加到舊文件,而不是在日期更改時創建新文件 – jan

回答

0

我想你必須在使用它之前強制創建文件。

下面是一個〔實施例:

Date date = new Date(); 
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); 
request_date = sdf.format(date); 
logFile="MBServ_"+request_date+".log"; 
File file = new File(logFile); 
file.createNewFile(); 
... 

文檔:https://docs.oracle.com/javase/7/docs/api/java/io/File.html#createNewFile()

+0

我根據上述代碼段做了更改。當日期更改時它不創建新文件 – jan

+0

它創建新文件但不完全在00.01 AM.It每天在不同的時間創建 – jan

+0

有什麼建議? – jan