-
-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathMessageHighlighter.java
More file actions
46 lines (38 loc) · 1.79 KB
/
MessageHighlighter.java
File metadata and controls
46 lines (38 loc) · 1.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package com.github.stickerifier.stickerify.logger;
import static ch.qos.logback.core.pattern.color.ANSIConstants.BOLD;
import static ch.qos.logback.core.pattern.color.ANSIConstants.DEFAULT_FG;
import static ch.qos.logback.core.pattern.color.ANSIConstants.RESET;
import static ch.qos.logback.core.pattern.color.ANSIConstants.YELLOW_FG;
import static com.github.stickerifier.stickerify.logger.HighlightHelper.changeColorTo;
import static com.github.stickerifier.stickerify.logger.HighlightHelper.greenHighlight;
import static com.github.stickerifier.stickerify.logger.HighlightHelper.replaceFirst;
import static com.github.stickerifier.stickerify.logger.HighlightHelper.retrieveMimeType;
import static com.github.stickerifier.stickerify.telegram.model.TelegramRequest.NEW_USER;
import ch.qos.logback.classic.pattern.MessageConverter;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.pattern.Converter;
/**
* Custom converter class to be used by Logback to highlight important substrings.
*
* @see Converter
*/
public class MessageHighlighter extends MessageConverter {
private static final String START_YELLOW = changeColorTo(BOLD + YELLOW_FG);
static final String CONTINUE_WHITE = changeColorTo(RESET + DEFAULT_FG);
static final String HIGHLIGHTED_NEW_USER = " " + START_YELLOW + NEW_USER.substring(1) + CONTINUE_WHITE;
@Override
public String convert(ILoggingEvent event) {
var message = event.getFormattedMessage();
if (message != null) {
if (message.contains(NEW_USER)) {
return replaceFirst(message, NEW_USER, HIGHLIGHTED_NEW_USER);
}
var mimeType = retrieveMimeType(message);
if (mimeType != null) {
var highlightedMimeType = greenHighlight(mimeType, CONTINUE_WHITE);
return replaceFirst(message, mimeType, highlightedMimeType);
}
}
return message;
}
}