查询日志记录

master
yaoxin 2024-04-18 17:24:23 +08:00
parent 15f14c758c
commit c080d456bf
2 changed files with 99 additions and 5 deletions

View File

@ -7,10 +7,8 @@ import java.io.*;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.net.Socket; import java.net.Socket;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.ArrayList; import java.text.SimpleDateFormat;
import java.util.Collections; import java.util.*;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -263,6 +261,17 @@ class ClientHandler implements Runnable {
return back; 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 @Override
public void run() { public void run() {
try { try {
@ -273,6 +282,10 @@ class ClientHandler implements Runnable {
String clientId = br.readLine(); String clientId = br.readLine();
System.out.println("客户端名称:" + clientId); System.out.println("客户端名称:" + clientId);
String clientMessage; 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) { while ((clientMessage = br.readLine()) != null) {
if (clientMessage.equals("exit")) { if (clientMessage.equals("exit")) {
System.out.println(clientId + "已断开连接"); System.out.println(clientId + "已断开连接");
@ -280,7 +293,8 @@ class ClientHandler implements Runnable {
} }
System.out.println("来自" + clientId + "的消息:" + clientMessage); System.out.println("来自" + clientId + "的消息:" + clientMessage);
// 在这里处理收到的消息,并发送响应给客户端 // 在这里处理收到的消息,并发送响应给客户端
bufferedWriter.write(getDate()+": 接收到的消息 -> "+clientMessage);
bufferedWriter.newLine();
//判断请求是否为查询 //判断请求是否为查询
if (clientMessage.endsWith("")){ if (clientMessage.endsWith("")){
pw.println("error:违法字符串:\"\""); pw.println("error:违法字符串:\"\"");
@ -291,27 +305,95 @@ class ClientHandler implements Runnable {
continue; continue;
} }
if (clientMessage.startsWith("select")){ if (clientMessage.startsWith("select")){
bufferedWriter.write(getDate()+": 匹配到的动作 -> 查询(select)");
bufferedWriter.newLine();
long staTime = new Date().getTime();
String bookString = getBookString(clientMessage); 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); pw.println(bookString);
} else } else
//判断请求是否为修改 //判断请求是否为修改
if (clientMessage.startsWith("update")){ 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:修改成功"); pw.println("success:修改成功");
} else } else
//判断请求是否为删除 //判断请求是否为删除
if (clientMessage.startsWith("delete")){ 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:删除成功"); pw.println("success:删除成功");
} else } else
//判断请求是否为添加 //判断请求是否为添加
if (clientMessage.startsWith("insert")){ 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:添加成功"); pw.println("success:添加成功");
} else { } else {
bufferedWriter.write(getDate()+": 匹配到的动作 -> 无");
bufferedWriter.newLine();
pw.println("error:请求格式错误"); pw.println("error:请求格式错误");
bufferedWriter.write(getDate()+": 解析消息: -> error:请求格式错误");
bufferedWriter.newLine();
} }
} }
br.close(); br.close();
pw.close(); pw.close();
bufferedWriter.close();
clientSocket.close(); clientSocket.close();
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();

View File

@ -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;