add:添加日志删除功能
This commit is contained in:
@@ -39,7 +39,7 @@ public class LuceneLogController {
|
||||
}
|
||||
@DeleteMapping("/clearLogs")
|
||||
//("清空日志")
|
||||
public ResponseEntity<Object> clearLogs(@RequestBody LogQuery query) {
|
||||
public ResponseEntity<Object> clearLogs(@RequestBody(required = false) LogQuery query) {
|
||||
luceneLogService.clearLogs(query);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@@ -44,4 +44,9 @@ public class LogQuery {
|
||||
private Integer size = 20;
|
||||
|
||||
private Integer page = 1;
|
||||
|
||||
/**
|
||||
* 日志保留天数,null 或 0 表示全部删除
|
||||
*/
|
||||
private Integer retainDays;
|
||||
}
|
||||
|
||||
@@ -28,7 +28,6 @@ import java.nio.file.Paths;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@@ -46,13 +45,20 @@ public class LuceneLogServiceImpl implements LuceneLogService {
|
||||
try {
|
||||
IndexWriter indexWriter = LuceneAppender.indexWriter;
|
||||
if (indexWriter != null){
|
||||
BooleanQuery.Builder booleanQueryBuilder = new BooleanQuery.Builder();
|
||||
DateTime offset = DateUtil.offset(new Date(), DateField.HOUR_OF_DAY, -10);
|
||||
TermRangeQuery termRangeQuery = new TermRangeQuery(
|
||||
"requestTime",null,
|
||||
new BytesRef(DateUtil.format(offset, "yyyy-MM-dd HH:mm:ss.SSS")), true, true);
|
||||
booleanQueryBuilder.add(termRangeQuery,BooleanClause.Occur.MUST);
|
||||
indexWriter.deleteDocuments(termRangeQuery);
|
||||
Integer retainDays = query == null ? null : query.getRetainDays();
|
||||
Query deleteQuery;
|
||||
if (retainDays == null || retainDays <= 0) {
|
||||
deleteQuery = new MatchAllDocsQuery();
|
||||
} else {
|
||||
DateTime cutoff = DateUtil.offset(new Date(), DateField.DAY_OF_YEAR, -retainDays);
|
||||
deleteQuery = new TermRangeQuery(
|
||||
"requestTime",
|
||||
null,
|
||||
new BytesRef(DateUtil.format(cutoff, "yyyy-MM-dd HH:mm:ss.SSS")),
|
||||
true,
|
||||
true);
|
||||
}
|
||||
indexWriter.deleteDocuments(deleteQuery);
|
||||
indexWriter.commit();
|
||||
}
|
||||
}catch (Exception ex){
|
||||
|
||||
Reference in New Issue
Block a user