每天根据日期生成setout文件

时间:2016-07-08 12:32:05

标签: java server server-side serversocket tcp-ip

我有持续监听端口的应用程序,如果有任何请求,请处理并发回响应。我已将程序的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();
   }
   }

1 个答案:

答案 0 :(得分: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()