更新
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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}
|
||||
# 初始连接数
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user