This commit is contained in:
2023-03-01 04:45:06 +08:00
parent 80537b08e5
commit 1fdb9d4911
7 changed files with 132 additions and 25 deletions

View File

@@ -34,4 +34,11 @@ public class EsLogController {
return new ResponseEntity<>(esLogService.query(query), HttpStatus.OK);
}
@DeleteMapping("/clearLogs")
@ApiOperation("清空日志")
public ResponseEntity<Object> clearLogs(@RequestBody LogQuery query) {
esLogService.clearLogs(query);
return new ResponseEntity<>(HttpStatus.OK);
}
}

View File

@@ -2,6 +2,7 @@ package org.nl.modules.system.service;
import cn.hutool.db.PageResult;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.nl.modules.system.service.dto.LogQuery;
/**
@@ -22,5 +23,10 @@ public interface EsLogService {
* @param logQuery
* @return
*/
PageResult query(LogQuery logQuery);
JSONObject query(LogQuery logQuery);
/**
* 清空日志
*/
void clearLogs(LogQuery query);
}

View File

@@ -21,8 +21,7 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
import org.springframework.data.elasticsearch.core.aggregation.impl.AggregatedPageImpl;
import org.springframework.data.elasticsearch.core.query.FetchSourceFilter;
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
import org.springframework.data.elasticsearch.core.query.*;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -43,20 +42,42 @@ public class EsLogServiceImpl implements EsLogService {
private final ElasticsearchRestTemplate elasticsearchRestTemplate;
@Override
public PageResult query(LogQuery logQuery){
public JSONObject query(LogQuery logQuery){
JSONObject res = new JSONObject();
PageResult page = new PageResult();
if (logQuery != null){
BoolQueryBuilder query = QueryBuilders.boolQuery(); //requestMethod
extractedParam(logQuery, query);
extractedQueryParam(logQuery, query);
Iterable<LogRepositoryDTO> all = esLogRepository.search(query, PageRequest.of(logQuery.getPage()-1,logQuery.getSize(), Sort.by("@timestamp").descending()));
page.addAll(((AggregatedPageImpl) all).getContent());
page.setTotal((int) ((AggregatedPageImpl) all).getTotalElements());
page.setPage(logQuery.getPage());
page.setPageSize(logQuery.getSize());
res.put("total",page.getTotal());
}
return page;
res.put("page",page);
return res;
}
@Override
public void clearLogs(LogQuery logQuery) {
BoolQueryBuilder query = QueryBuilders.boolQuery();
extractedParam(logQuery, query);
DeleteQuery deleteQuery = new DeleteQuery();
deleteQuery.setQuery(query);
elasticsearchRestTemplate.delete(deleteQuery,new LogRepositoryDTO().getClass());
}
private void extractedQueryParam(LogQuery logQuery, BoolQueryBuilder query) {
extractedParam(logQuery,query);
if (logQuery.getIsRequest()){
query.must().add(QueryBuilders.existsQuery("requestMethod"));
}
if (logQuery.getFilterSql()){
query.mustNot().add(QueryBuilders.wildcardQuery("logger","org.nl.modules.wql.core.engine.*"));
}
}
private void extractedParam(LogQuery logQuery, BoolQueryBuilder query) {
if (StringUtils.isNotEmpty(logQuery.getLogLevel())){
@@ -65,12 +86,6 @@ public class EsLogServiceImpl implements EsLogService {
if (StringUtils.isNotEmpty(logQuery.getSystem())){
query.must().add(QueryBuilders.matchQuery("system", logQuery.getSystem()));
}
if (logQuery.getIsRequest()){
query.must().add(QueryBuilders.existsQuery("requestMethod"));
}
if (logQuery.getFilterSql()){
query.mustNot().add(QueryBuilders.wildcardQuery("logger","org.nl.modules.wql.core.engine.*"));
}
query.mustNot().add(QueryBuilders.matchPhraseQuery("logger","org.elasticsearch.client.RestClient"));
if (StringUtils.isNotEmpty(logQuery.getTraceId())){
query.must().add(QueryBuilders.matchQuery("traceId", logQuery.getTraceId()));
@@ -89,7 +104,6 @@ public class EsLogServiceImpl implements EsLogService {
}
@Override
public JSONArray getLabelsValues(String type) {
JSONArray result = new JSONArray();

View File

@@ -38,7 +38,7 @@ spring:
# url: jdbc:log4jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:whxr_test}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:whxr}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
username: ${DB_USER:root}
password: ${DB_PWD:942464Yy}
password: ${DB_PWD:password}
# username: ${DB_USER:root}
# password: ${DB_PWD:root}
# 初始连接数

View File

@@ -119,14 +119,14 @@ https://juejin.cn/post/6844903775631572999
<!--开发环境:打印控制台-->
<springProfile name="dev">
<root level="info">
<root level="ERROR">
<appender-ref ref="esLogAppender"/>
<appender-ref ref="CONSOLE"/>
</root>
<!-- <logger name="es-logger" level="warn" additivity="false">-->
<!-- <appender-ref ref="esLogAppender"/>-->
<!-- <appender-ref ref="CONSOLE"/>-->
<!-- </logger>-->
<logger name="es-logger" level="info" additivity="false">
<appender-ref ref="esLogAppender"/>
<appender-ref ref="CONSOLE"/>
</logger>
<logger name="org.springframework" level="ERROR" additivity="false">
<appender-ref ref="CONSOLE"/>
</logger>