54 lines
1.9 KiB
Java
54 lines
1.9 KiB
Java
|
package com.guwan.backend.service;
|
||
|
|
||
|
import cn.easyes.core.biz.EsPageInfo;
|
||
|
import cn.easyes.core.conditions.LambdaEsQueryWrapper;
|
||
|
import com.guwan.backend.elasticsearch.document.LogstashLog;
|
||
|
import com.guwan.backend.elasticsearch.mapper.LogstashLogEsMapper;
|
||
|
import lombok.RequiredArgsConstructor;
|
||
|
import org.springframework.stereotype.Service;
|
||
|
|
||
|
import java.util.Date;
|
||
|
import java.util.List;
|
||
|
|
||
|
@Service
|
||
|
@RequiredArgsConstructor
|
||
|
public class LogstashLogService {
|
||
|
|
||
|
private final LogstashLogEsMapper logstashLogEsMapper;
|
||
|
|
||
|
/**
|
||
|
* 按时间范围和日志级别查询
|
||
|
*/
|
||
|
public List<LogstashLog> queryLogsByTimeRangeAndLevel(Date startTime, Date endTime, String level) {
|
||
|
LambdaEsQueryWrapper<LogstashLog> wrapper = new LambdaEsQueryWrapper<>();
|
||
|
wrapper.between(LogstashLog::getTimestamp, startTime, endTime)
|
||
|
.eq(LogstashLog::getLevel, level)
|
||
|
.orderByDesc(LogstashLog::getTimestamp);
|
||
|
|
||
|
return logstashLogEsMapper.selectList(wrapper);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 按关键字搜索日志内容
|
||
|
*/
|
||
|
public List<LogstashLog> searchLogsByKeyword(String keyword, Date startTime, Date endTime) {
|
||
|
LambdaEsQueryWrapper<LogstashLog> wrapper = new LambdaEsQueryWrapper<>();
|
||
|
wrapper.between(LogstashLog::getTimestamp, startTime, endTime)
|
||
|
.match(LogstashLog::getMessage, keyword)
|
||
|
.orderByDesc(LogstashLog::getTimestamp);
|
||
|
|
||
|
return logstashLogEsMapper.selectList(wrapper);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 分页查询最近的错误日志
|
||
|
*/
|
||
|
public EsPageInfo<LogstashLog> getRecentErrorLogs(int pageNum, int pageSize) {
|
||
|
LambdaEsQueryWrapper<LogstashLog> wrapper = new LambdaEsQueryWrapper<>();
|
||
|
wrapper.orderByDesc(LogstashLog::getTimestamp)
|
||
|
.from((pageNum - 1) * pageSize)
|
||
|
.size(pageSize);
|
||
|
|
||
|
return logstashLogEsMapper.pageQuery(wrapper, pageNum, pageSize);
|
||
|
}
|
||
|
}
|