查询日志记录

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.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();

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;