yl-backend/src/main/java/com/guwan/backend/service/LogstashLogService.java

54 lines
1.9 KiB
Java
Raw Normal View History

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);
}
}