44import ch .qos .logback .classic .Logger ;
55import ch .qos .logback .classic .LoggerContext ;
66import ch .qos .logback .classic .PatternLayout ;
7- import ch .qos .logback .classic .boolex .JaninoEventEvaluator ;
87import ch .qos .logback .classic .encoder .PatternLayoutEncoder ;
98import ch .qos .logback .classic .spi .ILoggingEvent ;
109import ch .qos .logback .core .ConsoleAppender ;
1110import ch .qos .logback .core .FileAppender ;
1211import ch .qos .logback .core .filter .EvaluatorFilter ;
1312import ch .qos .logback .core .pattern .color .ANSIConstants ;
1413import ch .qos .logback .core .pattern .color .ForegroundCompositeConverterBase ;
15- import ch .qos .logback .core .status .NopStatusListener ;
1614import org .slf4j .LoggerFactory ;
1715import org .springframework .stereotype .Service ;
1816
@@ -23,9 +21,9 @@ public class LogManager extends ForegroundCompositeConverterBase<ILoggingEvent>
2321 protected String getForegroundColorCode (ILoggingEvent event ) {
2422 Level level = event .getLevel ();
2523 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 ;
2927 default -> ANSIConstants .DEFAULT_FG ;
3028 };
3129 }
@@ -34,22 +32,21 @@ protected String getForegroundColorCode(ILoggingEvent event) {
3432
3533 public void createNewLogger (String className ) {
3634 LoggerContext loggerContext = (LoggerContext ) LoggerFactory .getILoggerFactory ();
37- final NopStatusListener nopStatusListener = new NopStatusListener ();
38- loggerContext .getStatusManager ().add (nopStatusListener );
3935
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 );
4539
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 );
4744 fileAppender .start ();
4845
49- final ConsoleAppender <ILoggingEvent > consoleAppender = consoleAppender (loggerContext , evaluatorFilter );
46+ ConsoleAppender <ILoggingEvent > consoleAppender = consoleAppender (loggerContext , evaluatorFilter );
5047 consoleAppender .start ();
5148
52- final Logger logger = (Logger ) LoggerFactory .getLogger (className );
49+ Logger logger = (Logger ) LoggerFactory .getLogger (className );
5350 logger .addAppender (fileAppender );
5451 logger .addAppender (consoleAppender );
5552
@@ -59,12 +56,12 @@ public void createNewLogger(String className) {
5956 }
6057
6158 private FileAppender <ILoggingEvent > fileAppender (String className , LoggerContext loggerContext , EvaluatorFilter <ILoggingEvent > evaluatorFilter ) {
62- final PatternLayout filePattern = new PatternLayout ();
59+ PatternLayout filePattern = new PatternLayout ();
6360 filePattern .setContext (loggerContext );
6461 filePattern .setPattern ("[%d{ISO8601}] %-5level [%logger{100}]: %msg%n%throwable" );
6562 filePattern .start ();
6663
67- final PatternLayoutEncoder encoder = new PatternLayoutEncoder ();
64+ PatternLayoutEncoder encoder = new PatternLayoutEncoder ();
6865 encoder .setPattern (filePattern .getPattern ());
6966 encoder .setContext (loggerContext );
7067 encoder .start ();
@@ -80,20 +77,21 @@ private FileAppender<ILoggingEvent> fileAppender(String className, LoggerContext
8077 }
8178
8279 private ConsoleAppender <ILoggingEvent > consoleAppender (LoggerContext loggerContext , EvaluatorFilter <ILoggingEvent > evaluatorFilter ) {
83- final PatternLayout consolePattern = new PatternLayout ();
80+ PatternLayout consolePattern = new PatternLayout ();
8481 consolePattern .setContext (loggerContext );
8582 consolePattern .setPattern ("%blue([%d{ISO8601}]) %highlight(%colourPicker(%-5level)) %blue([%logger{100}]:) %colourPicker(%msg%n%throwable)" );
8683 consolePattern .start ();
8784
88- final PatternLayoutEncoder consoleEncoder = new PatternLayoutEncoder ();
85+ PatternLayoutEncoder consoleEncoder = new PatternLayoutEncoder ();
8986 consoleEncoder .setPattern (consolePattern .getPattern ());
9087 consoleEncoder .setContext (loggerContext );
9188 consoleEncoder .start ();
9289
93- final ConsoleAppender <ILoggingEvent > consoleAppender = new ConsoleAppender <>();
90+ ConsoleAppender <ILoggingEvent > consoleAppender = new ConsoleAppender <>();
9491 consoleAppender .setEncoder (consoleEncoder );
9592 consoleAppender .setContext (loggerContext );
9693 consoleAppender .addFilter (evaluatorFilter );
94+
9795 return consoleAppender ;
9896 }
9997
0 commit comments