rev: 日志简单的高亮
This commit is contained in:
@@ -68,7 +68,8 @@ public class Searcher {
|
|||||||
endDate = LuceneIndexWriter.getDate(endDate);
|
endDate = LuceneIndexWriter.getDate(endDate);
|
||||||
}
|
}
|
||||||
// 字段之间的与或非关系,MUST表示and,MUST_NOT表示not,SHOULD表示or,有几个fields就必须有几个clauses
|
// 字段之间的与或非关系,MUST表示and,MUST_NOT表示not,SHOULD表示or,有几个fields就必须有几个clauses
|
||||||
TermRangeQuery termRangeQuery = new TermRangeQuery("timestamp", new BytesRef(startDate), new BytesRef(endDate), true, true);
|
TermRangeQuery termRangeQuery = new TermRangeQuery("timestamp", new BytesRef(startDate),
|
||||||
|
new BytesRef(endDate), true, true);
|
||||||
booleanQueryBuilder.add(termRangeQuery,BooleanClause.Occur.MUST);
|
booleanQueryBuilder.add(termRangeQuery,BooleanClause.Occur.MUST);
|
||||||
if (ObjectUtil.isNotEmpty(whereJson.get(LogMessageConstant.FIELD_MESSAGE))){
|
if (ObjectUtil.isNotEmpty(whereJson.get(LogMessageConstant.FIELD_MESSAGE))){
|
||||||
//查询解析器
|
//查询解析器
|
||||||
@@ -79,7 +80,7 @@ public class Searcher {
|
|||||||
if (ObjectUtil.isNotEmpty(whereJson.get(LogMessageConstant.FIELD_TRACEID))){
|
if (ObjectUtil.isNotEmpty(whereJson.get(LogMessageConstant.FIELD_TRACEID))){
|
||||||
//查询解析器
|
//查询解析器
|
||||||
TermQuery termQuery = new TermQuery(new Term(LogMessageConstant.FIELD_TRACEID,
|
TermQuery termQuery = new TermQuery(new Term(LogMessageConstant.FIELD_TRACEID,
|
||||||
whereJson.get(LogMessageConstant.FIELD_TRACEID).toString().trim()));
|
whereJson.getString(LogMessageConstant.FIELD_TRACEID).trim()));
|
||||||
booleanQueryBuilder.add(termQuery, BooleanClause.Occur.MUST);
|
booleanQueryBuilder.add(termQuery, BooleanClause.Occur.MUST);
|
||||||
}
|
}
|
||||||
if (ObjectUtil.isNotEmpty(whereJson.get(LogMessageConstant.FIELD_LEVEL))){
|
if (ObjectUtil.isNotEmpty(whereJson.get(LogMessageConstant.FIELD_LEVEL))){
|
||||||
@@ -110,8 +111,8 @@ public class Searcher {
|
|||||||
LogMessageConstant.COLOR_RESET + " - " +
|
LogMessageConstant.COLOR_RESET + " - " +
|
||||||
LogMessageConstant.COLOR_MAGENTA + doc.get(LogMessageConstant.FIELD_CLASS_NAME) +
|
LogMessageConstant.COLOR_MAGENTA + doc.get(LogMessageConstant.FIELD_CLASS_NAME) +
|
||||||
LogMessageConstant.COLOR_RESET + " - " +
|
LogMessageConstant.COLOR_RESET + " - " +
|
||||||
LogMessageConstant.COLOR_BLACK + doc.get(LogMessageConstant.FIELD_MESSAGE);
|
LogMessageConstant.COLOR_BLACK + highlightKeyword(doc.get(LogMessageConstant.FIELD_MESSAGE), whereJson.getString("message"));
|
||||||
// System.out.println(logInfo);
|
System.out.println(logInfo);
|
||||||
list.add(logInfo);
|
list.add(logInfo);
|
||||||
}
|
}
|
||||||
reader.close();
|
reader.close();
|
||||||
@@ -121,14 +122,32 @@ public class Searcher {
|
|||||||
return jo;
|
return jo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String highlightKeyword(String text, String keyword) {
|
||||||
|
if (ObjectUtil.isEmpty(keyword)) {
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
|
||||||
|
int startIndex = text.indexOf(keyword);
|
||||||
|
if (startIndex != -1) {
|
||||||
|
int endIndex = startIndex + keyword.length();
|
||||||
|
String beforeKeyword = text.substring(0, startIndex);
|
||||||
|
String afterKeyword = text.substring(endIndex);
|
||||||
|
String highlightedKeyword = LogMessageConstant.BACKGROUND_YELLOW + keyword + LogMessageConstant.COLOR_RESET
|
||||||
|
+ LogMessageConstant.COLOR_BLACK;
|
||||||
|
return beforeKeyword + highlightedKeyword + afterKeyword;
|
||||||
|
} else {
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
String indexDir = "D:\\lucene\\debug_log";
|
String indexDir = "D:\\lucene\\debug_log";
|
||||||
//查询这个字符串
|
//查询这个字符串
|
||||||
JSONObject whereJson = new JSONObject();
|
JSONObject whereJson = new JSONObject();
|
||||||
whereJson.put("size", "500");
|
whereJson.put("size", "500");
|
||||||
whereJson.put("page", "0");
|
whereJson.put("page", "1");
|
||||||
// whereJson.put("message", "traceId");
|
whereJson.put("message", "请求方法参数");
|
||||||
whereJson.put(LogMessageConstant.FIELD_TRACEID, "13236874421038464");
|
// whereJson.put(LogMessageConstant.FIELD_TRACEID, "13244183367577216");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
search(indexDir, whereJson);
|
search(indexDir, whereJson);
|
||||||
|
|||||||
@@ -36,4 +36,6 @@ public class LogMessageConstant {
|
|||||||
public final static String COLOR_WHITE = "\u001B[37m";
|
public final static String COLOR_WHITE = "\u001B[37m";
|
||||||
/** 文本颜色重置 */
|
/** 文本颜色重置 */
|
||||||
public final static String COLOR_RESET = "\u001B[0m";
|
public final static String COLOR_RESET = "\u001B[0m";
|
||||||
|
/** 背景颜色:黄色 */
|
||||||
|
public final static String BACKGROUND_YELLOW = "\u001B[43m";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,15 +60,11 @@ public class LuceneAppender extends AppenderBase<ILoggingEvent> {
|
|||||||
doc.add(new StringField(LogMessageConstant.FIELD_TIMESTAMP, formattedDateTime,Field.Store.YES));
|
doc.add(new StringField(LogMessageConstant.FIELD_TIMESTAMP, formattedDateTime,Field.Store.YES));
|
||||||
doc.add(new StoredField(LogMessageConstant.FIELD_CLASS_NAME, event.getLoggerName()));
|
doc.add(new StoredField(LogMessageConstant.FIELD_CLASS_NAME, event.getLoggerName()));
|
||||||
doc.add(new StoredField(LogMessageConstant.FIELD_THREAD, event.getThreadName()));
|
doc.add(new StoredField(LogMessageConstant.FIELD_THREAD, event.getThreadName()));
|
||||||
if (ObjectUtil.isNotEmpty(mdcPropertyMap)) {
|
if (ObjectUtil.isNotEmpty(mdcPropertyMap) && ObjectUtil.isNotEmpty(mdcPropertyMap.get(LogMessageConstant.FIELD_TRACEID))) {
|
||||||
String traceId = mdcPropertyMap.get(LogMessageConstant.FIELD_TRACEID);
|
String traceId = mdcPropertyMap.get(LogMessageConstant.FIELD_TRACEID);
|
||||||
if (ObjectUtil.isNotEmpty(traceId)) {
|
doc.add(new StringField(LogMessageConstant.FIELD_TRACEID, traceId, Field.Store.YES));
|
||||||
doc.add(new StringField(LogMessageConstant.FIELD_TRACEID, traceId,Field.Store.YES));
|
|
||||||
} else {
|
|
||||||
doc.add(new StringField(LogMessageConstant.FIELD_TRACEID, "无生成链路ID",Field.Store.YES));
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
doc.add(new StringField(LogMessageConstant.FIELD_TRACEID, "无生成链路ID",Field.Store.YES));
|
doc.add(new StringField(LogMessageConstant.FIELD_TRACEID, "无生成链路ID", Field.Store.YES));
|
||||||
}
|
}
|
||||||
doc.add(new TextField(LogMessageConstant.FIELD_MESSAGE, message, Field.Store.YES));
|
doc.add(new TextField(LogMessageConstant.FIELD_MESSAGE, message, Field.Store.YES));
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -15,12 +15,12 @@ spring:
|
|||||||
username: ${DB_USER:root}
|
username: ${DB_USER:root}
|
||||||
password: ${DB_PWD:12356}
|
password: ${DB_PWD:12356}
|
||||||
type: com.alibaba.druid.pool.DruidDataSource
|
type: com.alibaba.druid.pool.DruidDataSource
|
||||||
db2:
|
# db2:
|
||||||
driver-class-name: com.p6spy.engine.spy.P6SpyDriver
|
# driver-class-name: com.p6spy.engine.spy.P6SpyDriver
|
||||||
url: jdbc:p6spy:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:13306}/${DB_NAME:test}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
# url: jdbc:p6spy:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:13306}/${DB_NAME:test}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
||||||
username: ${DB_USER:root}
|
# username: ${DB_USER:root}
|
||||||
password: ${DB_PWD:12356}
|
# password: ${DB_PWD:12356}
|
||||||
type: com.alibaba.druid.pool.DruidDataSource
|
# type: com.alibaba.druid.pool.DruidDataSource
|
||||||
|
|
||||||
flyway:
|
flyway:
|
||||||
# 是否启用flyway
|
# 是否启用flyway
|
||||||
|
|||||||
@@ -128,6 +128,7 @@ export default {
|
|||||||
},
|
},
|
||||||
queryData() {
|
queryData() {
|
||||||
luceneOperation.getLogData(this.query).then(res => {
|
luceneOperation.getLogData(this.query).then(res => {
|
||||||
|
this.logs = [] // 清空
|
||||||
var ansi_up = new AnsiUp()
|
var ansi_up = new AnsiUp()
|
||||||
// 数据初始化
|
// 数据初始化
|
||||||
for (const i in res.content) {
|
for (const i in res.content) {
|
||||||
|
|||||||
Reference in New Issue
Block a user