使用以下Java代码,在启动jar程序时,将输出日志按天存储,并删除三天之前的日志文件:
```java
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Main {
public static void main(String[] args) throws IOException {
// 指定日志文件路径
String logFilePath = "/path/to/your/log/file.log";
// 创建日志文件
File logFile = new File(logFilePath);
if (!logFile.exists()) {
logFile.createNewFile();
}
// 获取当前日期
Date currentDate = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String currentDateString = dateFormat.format(currentDate);
// 获取三天前的日期
Calendar calendar = Calendar.getInstance();
calendar.setTime(currentDate);
calendar.add(Calendar.DAY_OF_YEAR, -3);
Date threeDaysAgo = calendar.getTime();
String threeDaysAgoString = dateFormat.format(threeDaysAgo);
// 根据日期生成日志文件名
String logFileName = logFile.getName();
String newLogFileName = logFileName.replace(".log", "_" + currentDateString + ".log");
File newLogFile = new File(logFile.getParent(), newLogFileName);
// 切换日志文件
if (!logFile.getName().equals(newLogFile.getName())) {
logFile.renameTo(newLogFile);
logFile.createNewFile();
}
// 删除三天前的日志文件
File[] logFiles = logFile.getParentFile().listFiles();
if (logFiles != null) {
for (File file : logFiles) {
String fileName = file.getName();
if (fileName.startsWith(logFileName) && fileName.endsWith(".log")) {
String fileDateString = fileName.substring(logFileName.length() + 1, fileName.lastIndexOf(".log"));
try {
Date fileDate = dateFormat.parse(fileDateString);
if (fileDate.before(threeDaysAgo)) {
file.delete();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
// 启动jar程序并将输出重定向到日志文件
ProcessBuilder processBuilder = new ProcessBuilder("java", "-jar", "your-jar-file.jar");
processBuilder.redirectOutput(logFile);
processBuilder.redirectErrorStream(true);
processBuilder.start();
}
}
```
请将代码中的`/path/to/your/log/file.log`替换为你想要存储日志的文件路径。
该代*会码**在启动jar程序前,根据当前日期生成新的日志文件名,并将输出重定向到该日志文件中。然后,它会遍历日志文件目录,删除三天之前的日志文件。
请确保你已经替换了`your-jar-file.jar`为你实际的jar文件名。另外,你需要在代码中处理可能的异常情况。