diff --git a/src/main/java/com/bwie/lx/ClientHandler.java b/src/main/java/com/bwie/lx/ClientHandler.java index 650e024..e842a13 100644 --- a/src/main/java/com/bwie/lx/ClientHandler.java +++ b/src/main/java/com/bwie/lx/ClientHandler.java @@ -7,10 +7,8 @@ import java.io.*; import java.lang.reflect.Field; import java.net.Socket; import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; +import java.text.SimpleDateFormat; +import java.util.*; import java.util.stream.Collectors; /** @@ -263,6 +261,17 @@ class ClientHandler implements Runnable { return back; } + public String getDate(){ + Date date = new Date(); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + return simpleDateFormat.format(date); + } + + public String insertBookInfo(String clientMessage){ + String substring = clientMessage.substring(clientMessage.indexOf("BookInfo(") + 9, clientMessage.indexOf(")")); + return null; + } + @Override public void run() { try { @@ -273,6 +282,10 @@ class ClientHandler implements Runnable { String clientId = br.readLine(); System.out.println("客户端名称:" + clientId); String clientMessage; + // 创建一个FileWriter对象来写入文件 + FileWriter fileWriter = new FileWriter("D:\\work\\lx\\src\\main\\java\\com\\bwie\\lx\\txt\\log.txt"); + // 创建一个BufferedWriter对象包装FileWriter,提高写入性能 + BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); while ((clientMessage = br.readLine()) != null) { if (clientMessage.equals("exit")) { System.out.println(clientId + "已断开连接"); @@ -280,7 +293,8 @@ class ClientHandler implements Runnable { } System.out.println("来自" + clientId + "的消息:" + clientMessage); // 在这里处理收到的消息,并发送响应给客户端 - + bufferedWriter.write(getDate()+": 接收到的消息 -> "+clientMessage); + bufferedWriter.newLine(); //判断请求是否为查询 if (clientMessage.endsWith(";")){ pw.println("error:违法字符串:\";\""); @@ -291,27 +305,95 @@ class ClientHandler implements Runnable { continue; } if (clientMessage.startsWith("select")){ + bufferedWriter.write(getDate()+": 匹配到的动作 -> 查询(select)"); + bufferedWriter.newLine(); + long staTime = new Date().getTime(); String bookString = getBookString(clientMessage); + long endTime = new Date().getTime(); + if (bookString.contains("error")){ + bufferedWriter.write(getDate()+": 解析消息: "+bookString.substring(bookString.indexOf("error:")+6)); + bufferedWriter.newLine(); + bufferedWriter.write(getDate()+": [查询]操作执行完成耗时: "+(endTime-staTime)+"MS, [查询]结果: "+bookString.substring(bookString.indexOf("error:")+6)); + bufferedWriter.newLine(); + }else{ + bufferedWriter.write(getDate()+": 解析消息: 无问题"); + bufferedWriter.newLine(); + bufferedWriter.write(getDate()+": [查询]操作执行完成耗时: "+(endTime-staTime)+"MS, [查询]结果: "+bookString.substring(bookString.indexOf("success:")+8)); + bufferedWriter.newLine(); + } pw.println(bookString); } else //判断请求是否为修改 if (clientMessage.startsWith("update")){ + bufferedWriter.write(getDate()+": 匹配到的动作 -> 修改(update)"); + bufferedWriter.newLine(); + long staTime = new Date().getTime(); + String bookString=""; + long endTime = new Date().getTime(); + if (bookString.contains("error")){ + bufferedWriter.write(getDate()+": 解析消息: "+bookString.substring(bookString.indexOf("error:")+6)); + bufferedWriter.newLine(); + bufferedWriter.write(getDate()+": [修改]操作执行完成耗时: "+(endTime-staTime)+"MS, [修改]结果: "+bookString.substring(bookString.indexOf("error:")+6)); + bufferedWriter.newLine(); + }else{ + bufferedWriter.write(getDate()+": 解析消息: 无问题"); + bufferedWriter.newLine(); + bufferedWriter.write(getDate()+": [修改]操作执行完成耗时: "+(endTime-staTime)+"MS, [修改]结果: 修改成功"); + bufferedWriter.newLine(); + } pw.println("success:修改成功"); } else //判断请求是否为删除 if (clientMessage.startsWith("delete")){ + bufferedWriter.write(getDate()+": 匹配到的动作 -> 删除(delete)"); + bufferedWriter.newLine(); + long staTime = new Date().getTime(); + String bookString=""; + long endTime = new Date().getTime(); + if (bookString.contains("error")){ + bufferedWriter.write(getDate()+": 解析消息: "+bookString.substring(bookString.indexOf("error:")+6)); + bufferedWriter.newLine(); + bufferedWriter.write(getDate()+": [删除]操作执行完成耗时: "+(endTime-staTime)+"MS, [删除结果: "+bookString.substring(bookString.indexOf("error:")+6)); + bufferedWriter.newLine(); + }else{ + bufferedWriter.write(getDate()+": 解析消息: 无问题"); + bufferedWriter.newLine(); + bufferedWriter.write(getDate()+": [删除]操作执行完成耗时: "+(endTime-staTime)+"MS, [删除]结果: 删除成功"); + bufferedWriter.newLine(); + } pw.println("success:删除成功"); } else //判断请求是否为添加 if (clientMessage.startsWith("insert")){ + bufferedWriter.write(getDate()+": 匹配到的动作 -> 添加(insert)"); + bufferedWriter.newLine(); + long staTime = new Date().getTime(); + String bookString=insertBookInfo(clientMessage); + long endTime = new Date().getTime(); + if (bookString.contains("error")){ + bufferedWriter.write(getDate()+": 解析消息: "+bookString.substring(bookString.indexOf("error:")+6)); + bufferedWriter.newLine(); + bufferedWriter.write(getDate()+": [添加]操作执行完成耗时: "+(endTime-staTime)+"MS, [添加]结果: "+bookString.substring(bookString.indexOf("error:")+6)); + bufferedWriter.newLine(); + }else{ + bufferedWriter.write(getDate()+": 解析消息: 无问题"); + bufferedWriter.newLine(); + bufferedWriter.write(getDate()+": [添加]操作执行完成耗时: "+(endTime-staTime)+"MS, [添加]结果: 添加成功"); + bufferedWriter.newLine(); + } pw.println("success:添加成功"); } else { + bufferedWriter.write(getDate()+": 匹配到的动作 -> 无"); + bufferedWriter.newLine(); pw.println("error:请求格式错误"); + bufferedWriter.write(getDate()+": 解析消息: -> error:请求格式错误"); + bufferedWriter.newLine(); } } br.close(); pw.close(); + bufferedWriter.close(); clientSocket.close(); } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/com/bwie/lx/txt/log.txt b/src/main/java/com/bwie/lx/txt/log.txt new file mode 100644 index 0000000..9ee85b8 --- /dev/null +++ b/src/main/java/com/bwie/lx/txt/log.txt @@ -0,0 +1,12 @@ +2024-04-18 16:48:07: յϢ -> select * from bookInfo; +2024-04-18 16:48:07: ƥ䵽Ķ -> ѯ(select) +2024-04-18 16:48:07: Ϣ: +2024-04-18 16:48:07: [ѯ]ִɺʱ: 40MS, [ѯ]: id|name|author|type|country|price;1||޹|Ĵ|й|19.68;2|javaŵн||鼮|й|36.89;3|javaweb||鼮|й|65.32; +2024-04-18 16:48:16: յϢ -> delete from bookInfo; +2024-04-18 16:48:16: ƥ䵽Ķ -> ɾ(delete) +2024-04-18 16:48:16: Ϣ: +2024-04-18 16:48:16: [ɾ]ִɺʱ: 0MS, [ɾ]: ɾɹ +2024-04-18 16:48:41: յϢ -> select * from bookInfo; +2024-04-18 16:48:41: ƥ䵽Ķ -> ѯ(select) +2024-04-18 16:48:41: Ϣ: +2024-04-18 16:48:41: [ѯ]ִɺʱ: 1MS, [ѯ]: id|name|author|type|country|price;1||޹|Ĵ|й|19.68;2|javaŵн||鼮|й|36.89;3|javaweb||鼮|й|65.32;