package com.miniframe.disaster.service; import com.miniframe.core.ext.UtilTools; import com.miniframe.model.system.DAccident; import com.miniframe.template.TemplateGenerator; import com.miniframe.tools.XIFileUtils; import com.miniframe.websocket.WebsocketEndPoint; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.concurrent.CompletableFuture; /** * 日志存储 */ public class LogService { /** * 创建文件 * @param accident * @return */ public static File createLog(DAccident accident){ String filePath =TemplateGenerator.BPATH+"/"+accident.getId()+"/"+accident.getJid()+"/"+accident.getStype().toLowerCase()+"/log.txt"; XIFileUtils.mkdir(TemplateGenerator.BPATH); XIFileUtils.mkdir(TemplateGenerator.BPATH+"/"+accident.getId()); XIFileUtils.mkdir(TemplateGenerator.BPATH+"/"+accident.getId()+"/"+accident.getJid()); XIFileUtils.mkdir(TemplateGenerator.BPATH+"/"+accident.getId()+"/"+accident.getJid()+"/"+accident.getStype().toLowerCase()); File file =new File(filePath); return file; } /** * 清空文件 * @param accident */ public static void clearLog(DAccident accident){ String filePath =TemplateGenerator.BPATH+"/"+accident.getId()+"/"+accident.getJid()+"/"+accident.getStype().toLowerCase()+"/log.txt"; FileWriter writer = null; try { writer = new FileWriter(filePath); writer.write(""); // 将内容设置为空字符串即可清空文件 writer.close(); } catch (IOException e) { e.printStackTrace(); } } /** * 文件内容追加 * @param */ public static void addLog(Integer aid,Integer jid,String stype,String log){ String filePath =TemplateGenerator.BPATH+"/"+aid+"/"+jid+"/"+stype.toLowerCase()+"/log.txt"; FileWriter writer = null; try { writer = new FileWriter(filePath,true); BufferedWriter bwriter = new BufferedWriter(writer); bwriter.write(log); // 将内容写入文件末尾 bwriter.newLine(); bwriter.close(); writer.close(); } catch (IOException e) { e.printStackTrace(); } CompletableFuture cf = CompletableFuture.supplyAsync(()->{ System.out.println("s消息发送:aid:"+aid+"--log:"+log); WebsocketEndPoint webs = (WebsocketEndPoint) UtilTools.getBean("websocketEndPoint"); webs.sendMessageToUser(String.valueOf(aid),log); System.out.println("d消息发送:aid:"+aid+"--log:"+log); return null; }); } /** * 文件内容追加 * @param */ public static void addLog(DAccident accident,String log){ addLog(accident.getId(),accident.getJid(),accident.getStype(),log); } }