4
4
import ch .qos .logback .classic .Logger ;
5
5
import ch .qos .logback .classic .LoggerContext ;
6
6
import ch .qos .logback .classic .PatternLayout ;
7
- import ch .qos .logback .classic .boolex .JaninoEventEvaluator ;
8
7
import ch .qos .logback .classic .encoder .PatternLayoutEncoder ;
9
8
import ch .qos .logback .classic .spi .ILoggingEvent ;
10
9
import ch .qos .logback .core .ConsoleAppender ;
11
10
import ch .qos .logback .core .FileAppender ;
12
11
import ch .qos .logback .core .filter .EvaluatorFilter ;
13
12
import ch .qos .logback .core .pattern .color .ANSIConstants ;
14
13
import ch .qos .logback .core .pattern .color .ForegroundCompositeConverterBase ;
15
- import ch .qos .logback .core .status .NopStatusListener ;
16
14
import org .slf4j .LoggerFactory ;
17
15
import org .springframework .stereotype .Service ;
18
16
@@ -23,9 +21,9 @@ public class LogManager extends ForegroundCompositeConverterBase<ILoggingEvent>
23
21
protected String getForegroundColorCode (ILoggingEvent event ) {
24
22
Level level = event .getLevel ();
25
23
return switch (level .toInt ()) {
26
- case Level .ERROR_INT -> ANSIConstants .BOLD + ANSIConstants .RED_FG ; // same as default color scheme
27
- case Level .WARN_INT -> ANSIConstants .RED_FG ;// same as default color scheme
28
- case Level .INFO_INT -> ANSIConstants .CYAN_FG ; // use CYAN instead of BLUE
24
+ case Level .ERROR_INT -> ANSIConstants .BOLD + ANSIConstants .RED_FG ;
25
+ case Level .WARN_INT -> ANSIConstants .RED_FG ;
26
+ case Level .INFO_INT -> ANSIConstants .CYAN_FG ;
29
27
default -> ANSIConstants .DEFAULT_FG ;
30
28
};
31
29
}
@@ -34,22 +32,21 @@ protected String getForegroundColorCode(ILoggingEvent event) {
34
32
35
33
public void createNewLogger (String className ) {
36
34
LoggerContext loggerContext = (LoggerContext ) LoggerFactory .getILoggerFactory ();
37
- final NopStatusListener nopStatusListener = new NopStatusListener ();
38
- loggerContext .getStatusManager ().add (nopStatusListener );
39
35
40
- final JaninoEventEvaluator janinoEventEvaluator = new JaninoEventEvaluator ();
41
- janinoEventEvaluator .setExpression ("logger.contains('com.cmccarthy')" );
42
- janinoEventEvaluator .setContext (loggerContext );
43
- final EvaluatorFilter <ILoggingEvent > evaluatorFilter = new EvaluatorFilter <>();
44
- evaluatorFilter .setEvaluator (janinoEventEvaluator );
36
+ // Use the custom evaluator instead of JaninoEventEvaluator
37
+ CustomEventEvaluator customEventEvaluator = new CustomEventEvaluator ();
38
+ customEventEvaluator .setContext (loggerContext );
45
39
46
- final FileAppender <ILoggingEvent > fileAppender = fileAppender (className , loggerContext , evaluatorFilter );
40
+ EvaluatorFilter <ILoggingEvent > evaluatorFilter = new EvaluatorFilter <>();
41
+ evaluatorFilter .setEvaluator (customEventEvaluator );
42
+
43
+ FileAppender <ILoggingEvent > fileAppender = fileAppender (className , loggerContext , evaluatorFilter );
47
44
fileAppender .start ();
48
45
49
- final ConsoleAppender <ILoggingEvent > consoleAppender = consoleAppender (loggerContext , evaluatorFilter );
46
+ ConsoleAppender <ILoggingEvent > consoleAppender = consoleAppender (loggerContext , evaluatorFilter );
50
47
consoleAppender .start ();
51
48
52
- final Logger logger = (Logger ) LoggerFactory .getLogger (className );
49
+ Logger logger = (Logger ) LoggerFactory .getLogger (className );
53
50
logger .addAppender (fileAppender );
54
51
logger .addAppender (consoleAppender );
55
52
@@ -59,12 +56,12 @@ public void createNewLogger(String className) {
59
56
}
60
57
61
58
private FileAppender <ILoggingEvent > fileAppender (String className , LoggerContext loggerContext , EvaluatorFilter <ILoggingEvent > evaluatorFilter ) {
62
- final PatternLayout filePattern = new PatternLayout ();
59
+ PatternLayout filePattern = new PatternLayout ();
63
60
filePattern .setContext (loggerContext );
64
61
filePattern .setPattern ("[%d{ISO8601}] %-5level [%logger{100}]: %msg%n%throwable" );
65
62
filePattern .start ();
66
63
67
- final PatternLayoutEncoder encoder = new PatternLayoutEncoder ();
64
+ PatternLayoutEncoder encoder = new PatternLayoutEncoder ();
68
65
encoder .setPattern (filePattern .getPattern ());
69
66
encoder .setContext (loggerContext );
70
67
encoder .start ();
@@ -80,20 +77,21 @@ private FileAppender<ILoggingEvent> fileAppender(String className, LoggerContext
80
77
}
81
78
82
79
private ConsoleAppender <ILoggingEvent > consoleAppender (LoggerContext loggerContext , EvaluatorFilter <ILoggingEvent > evaluatorFilter ) {
83
- final PatternLayout consolePattern = new PatternLayout ();
80
+ PatternLayout consolePattern = new PatternLayout ();
84
81
consolePattern .setContext (loggerContext );
85
82
consolePattern .setPattern ("%blue([%d{ISO8601}]) %highlight(%colourPicker(%-5level)) %blue([%logger{100}]:) %colourPicker(%msg%n%throwable)" );
86
83
consolePattern .start ();
87
84
88
- final PatternLayoutEncoder consoleEncoder = new PatternLayoutEncoder ();
85
+ PatternLayoutEncoder consoleEncoder = new PatternLayoutEncoder ();
89
86
consoleEncoder .setPattern (consolePattern .getPattern ());
90
87
consoleEncoder .setContext (loggerContext );
91
88
consoleEncoder .start ();
92
89
93
- final ConsoleAppender <ILoggingEvent > consoleAppender = new ConsoleAppender <>();
90
+ ConsoleAppender <ILoggingEvent > consoleAppender = new ConsoleAppender <>();
94
91
consoleAppender .setEncoder (consoleEncoder );
95
92
consoleAppender .setContext (loggerContext );
96
93
consoleAppender .addFilter (evaluatorFilter );
94
+
97
95
return consoleAppender ;
98
96
}
99
97
0 commit comments