package com.product.system.backup.entity; import java.io.File; import java.io.FileWriter; import java.text.SimpleDateFormat; import java.util.Date; public class BackupLogger { public static final int ERROR_TYPE = 0;// 错误日志 public static final int INFO_TYPE = 1;// 普通日志 SimpleDateFormat standardTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat standardDateFormat = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat numberTimeFormat = new SimpleDateFormat("yyyyMMddHHmmss"); SimpleDateFormat numberDateFormat = new SimpleDateFormat("yyyyMMdd"); File logFile; FileWriter logWriter; public BackupLogger() { logFile = new File(System.getProperty("user.dir") + File.separator + "/logs/backend/backup/" + numberTimeFormat.format(new Date()) + ".log"); // logFile = new File("D:/product-server/backup/log/back_" + numberTimeFormat.format(new Date()) + ".log"); if (!logFile.exists()) { System.out.println("日志文件不存在:" + logFile.getAbsolutePath()); try { // 确保父目录存在 File parentDir = logFile.getParentFile(); if (parentDir != null && !parentDir.exists()) { parentDir.mkdirs(); // 创建所有必要的父目录 } logFile.createNewFile(); } catch (Exception e) { System.out.println("创建日志文件失败:" + logFile.getAbsolutePath() + "," + e.getMessage()); } } try { logWriter = new FileWriter(logFile, true); } catch (Exception e) { System.out.println("初始日志文件失败:" + logFile.getAbsolutePath() + "," + e.getMessage()); } } public boolean writeInfo(String message, int type) { if (logWriter != null) { try { logWriter.write("【"); if (type == BackupLogger.ERROR_TYPE) { logWriter.write("ERROR"); } else { logWriter.write("INFO "); } logWriter.write(" " + standardTimeFormat.format(new Date())); logWriter.write("】 "); logWriter.write(message); logWriter.write("\r\n"); logWriter.flush(); return true; } catch (Exception e) { System.out.println("日志写入错误:" + logFile.getAbsolutePath() + "," + e.getMessage()); } } return false; } public void closeLogger() { if (logWriter != null) { try { logWriter.close(); } catch (Exception e) { System.out.println("日志写入错误:" + logFile.getAbsolutePath() + "," + e.getMessage()); } } } }