diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/log/LuceneLogController.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/log/LuceneLogController.java index 8d3e97c..5b17a04 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/log/LuceneLogController.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/log/LuceneLogController.java @@ -39,7 +39,7 @@ public class LuceneLogController { } @DeleteMapping("/clearLogs") //("清空日志") - public ResponseEntity clearLogs(@RequestBody LogQuery query) { + public ResponseEntity clearLogs(@RequestBody(required = false) LogQuery query) { luceneLogService.clearLogs(query); return new ResponseEntity<>(HttpStatus.OK); } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/service/logserver/LogQuery.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/service/logserver/LogQuery.java index 9f2be0d..620e381 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/service/logserver/LogQuery.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/service/logserver/LogQuery.java @@ -44,4 +44,9 @@ public class LogQuery { private Integer size = 20; private Integer page = 1; + + /** + * 日志保留天数,null 或 0 表示全部删除 + */ + private Integer retainDays; } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/service/logserver/LuceneLogServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/service/logserver/LuceneLogServiceImpl.java index 24f41a2..90b78dd 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/service/logserver/LuceneLogServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/service/logserver/LuceneLogServiceImpl.java @@ -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){ diff --git a/nladmin-ui/src/views/lucene/api/lucene.js b/nladmin-ui/src/views/lucene/api/lucene.js index a9ea19b..32cdd7e 100644 --- a/nladmin-ui/src/views/lucene/api/lucene.js +++ b/nladmin-ui/src/views/lucene/api/lucene.js @@ -14,10 +14,11 @@ export function getTagName() { method: 'post' }) } -export function deleteAllLog() { +export function deleteAllLog(data) { return request({ url: 'api/lucene/clearLogs', - method: 'post' + method: 'delete', + data }) } diff --git a/nladmin-ui/src/views/lucene/index.vue b/nladmin-ui/src/views/lucene/index.vue index 4d9ca72..8462746 100644 --- a/nladmin-ui/src/views/lucene/index.vue +++ b/nladmin-ui/src/views/lucene/index.vue @@ -59,20 +59,41 @@ {{ $t('common.Query') }} + + 清除日志 + + + + 全部删除 + 保留3天 + 保留5天 + 保留7天 + + + 取 消 + + 确 定 + + +
- {{ log.requestTime }} + {{ log.requestTime }} {{ log.logLevel || 'UNKNOWN' }} - IP: {{ log.requestIp }} - {{ log.requestMethod }} - traceId: {{ log.traceId }} - {{ log.thread }} + {{ log.requestIp }} + {{ log.requestMethod }} + traceId: {{ log.traceId }} + {{ log.thread }}
@@ -120,6 +141,9 @@ export default { rules: {}, logs: [], tagList: [], + clearDialogVisible: false, + clearLoading: false, + clearOption: 3, query: { traceId: '', requestMethod: '', @@ -166,11 +190,25 @@ export default { requestIp: item && item.requestIp, requestMethod: item && item.requestMethod, logLevel: item && item.logLevel, + logger: item && item.logger, + system: item && item.system, thread: item && item.thread, traceId: item && item.traceId, messageHtml: ansi_up.ansi_to_html(rawMessage) } }, + handleClearLogs() { + const retainDays = this.clearOption === 'all' ? 0 : this.clearOption + this.clearLoading = true + luceneOperation.deleteAllLog({ retainDays }).then(() => { + this.$message.success('日志清除成功') + this.clearDialogVisible = false + this.query.page = 1 + this.queryData() + }).finally(() => { + this.clearLoading = false + }) + }, queryData() { if (this.query.createTime && this.query.createTime.length === 2) { this.query.startTime = this.query.createTime[0] @@ -192,6 +230,12 @@ export default {