Skip to content

bump it #11

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Dec 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.cmccarthy.common.utils;

import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.boolex.EventEvaluatorBase;

public class CustomEventEvaluator extends EventEvaluatorBase<ILoggingEvent> {

@Override
public boolean evaluate(ILoggingEvent event) {
// Check if logger name contains 'com.cmccarthy'
return event.getLoggerName().contains("com.cmccarthy");
}
}
38 changes: 18 additions & 20 deletions common/src/main/java/com/cmccarthy/common/utils/LogManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,13 @@
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.PatternLayout;
import ch.qos.logback.classic.boolex.JaninoEventEvaluator;
import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.ConsoleAppender;
import ch.qos.logback.core.FileAppender;
import ch.qos.logback.core.filter.EvaluatorFilter;
import ch.qos.logback.core.pattern.color.ANSIConstants;
import ch.qos.logback.core.pattern.color.ForegroundCompositeConverterBase;
import ch.qos.logback.core.status.NopStatusListener;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;

Expand All @@ -23,9 +21,9 @@ public class LogManager extends ForegroundCompositeConverterBase<ILoggingEvent>
protected String getForegroundColorCode(ILoggingEvent event) {
Level level = event.getLevel();
return switch (level.toInt()) {
case Level.ERROR_INT -> ANSIConstants.BOLD + ANSIConstants.RED_FG; // same as default color scheme
case Level.WARN_INT -> ANSIConstants.RED_FG;// same as default color scheme
case Level.INFO_INT -> ANSIConstants.CYAN_FG; // use CYAN instead of BLUE
case Level.ERROR_INT -> ANSIConstants.BOLD + ANSIConstants.RED_FG;
case Level.WARN_INT -> ANSIConstants.RED_FG;
case Level.INFO_INT -> ANSIConstants.CYAN_FG;
default -> ANSIConstants.DEFAULT_FG;
};
}
Expand All @@ -34,22 +32,21 @@ protected String getForegroundColorCode(ILoggingEvent event) {

public void createNewLogger(String className) {
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
final NopStatusListener nopStatusListener = new NopStatusListener();
loggerContext.getStatusManager().add(nopStatusListener);

final JaninoEventEvaluator janinoEventEvaluator = new JaninoEventEvaluator();
janinoEventEvaluator.setExpression("logger.contains('com.cmccarthy')");
janinoEventEvaluator.setContext(loggerContext);
final EvaluatorFilter<ILoggingEvent> evaluatorFilter = new EvaluatorFilter<>();
evaluatorFilter.setEvaluator(janinoEventEvaluator);
// Use the custom evaluator instead of JaninoEventEvaluator
CustomEventEvaluator customEventEvaluator = new CustomEventEvaluator();
customEventEvaluator.setContext(loggerContext);

final FileAppender<ILoggingEvent> fileAppender = fileAppender(className, loggerContext, evaluatorFilter);
EvaluatorFilter<ILoggingEvent> evaluatorFilter = new EvaluatorFilter<>();
evaluatorFilter.setEvaluator(customEventEvaluator);

FileAppender<ILoggingEvent> fileAppender = fileAppender(className, loggerContext, evaluatorFilter);
fileAppender.start();

final ConsoleAppender<ILoggingEvent> consoleAppender = consoleAppender(loggerContext, evaluatorFilter);
ConsoleAppender<ILoggingEvent> consoleAppender = consoleAppender(loggerContext, evaluatorFilter);
consoleAppender.start();

final Logger logger = (Logger) LoggerFactory.getLogger(className);
Logger logger = (Logger) LoggerFactory.getLogger(className);
logger.addAppender(fileAppender);
logger.addAppender(consoleAppender);

Expand All @@ -59,12 +56,12 @@ public void createNewLogger(String className) {
}

private FileAppender<ILoggingEvent> fileAppender(String className, LoggerContext loggerContext, EvaluatorFilter<ILoggingEvent> evaluatorFilter) {
final PatternLayout filePattern = new PatternLayout();
PatternLayout filePattern = new PatternLayout();
filePattern.setContext(loggerContext);
filePattern.setPattern("[%d{ISO8601}] %-5level [%logger{100}]: %msg%n%throwable");
filePattern.start();

final PatternLayoutEncoder encoder = new PatternLayoutEncoder();
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
encoder.setPattern(filePattern.getPattern());
encoder.setContext(loggerContext);
encoder.start();
Expand All @@ -80,20 +77,21 @@ private FileAppender<ILoggingEvent> fileAppender(String className, LoggerContext
}

private ConsoleAppender<ILoggingEvent> consoleAppender(LoggerContext loggerContext, EvaluatorFilter<ILoggingEvent> evaluatorFilter) {
final PatternLayout consolePattern = new PatternLayout();
PatternLayout consolePattern = new PatternLayout();
consolePattern.setContext(loggerContext);
consolePattern.setPattern("%blue([%d{ISO8601}]) %highlight(%colourPicker(%-5level)) %blue([%logger{100}]:) %colourPicker(%msg%n%throwable)");
consolePattern.start();

final PatternLayoutEncoder consoleEncoder = new PatternLayoutEncoder();
PatternLayoutEncoder consoleEncoder = new PatternLayoutEncoder();
consoleEncoder.setPattern(consolePattern.getPattern());
consoleEncoder.setContext(loggerContext);
consoleEncoder.start();

final ConsoleAppender<ILoggingEvent> consoleAppender = new ConsoleAppender<>();
ConsoleAppender<ILoggingEvent> consoleAppender = new ConsoleAppender<>();
consoleAppender.setEncoder(consoleEncoder);
consoleAppender.setContext(loggerContext);
consoleAppender.addFilter(evaluatorFilter);

return consoleAppender;
}

Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
<cucumber-java.version>7.15.0</cucumber-java.version>
<cucumber-spring.version>7.15.0</cucumber-spring.version>
<cucumber-testng.version>7.15.0</cucumber-testng.version>
<logback.version>1.5.0</logback.version>
<logback.version>1.5.13</logback.version>
<gherkin.version>28.0.0</gherkin.version>
<commons-io.version>2.15.1</commons-io.version>
<assertj-core.version>3.23.1</assertj-core.version>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,6 @@ public void createDriver() throws IOException {
public void setLocalWebDriver() throws IOException {
switch (applicationProperties.getBrowser()) {
case ("chrome") -> {
// String path = Arrays.toString(this.environment.getActiveProfiles()).contains("headless-github") ? "/usr/local/share/chromedriver-linux64" : Constants.DRIVER_DIRECTORY;

String path = Arrays.toString(this.environment.getActiveProfiles()).contains("headless-github") ?
System.getProperty("user.dir") + "/src/test/resources/drivers" : Constants.DRIVER_DIRECTORY;
ChromeDriverService src = new ChromeDriverService.Builder()
Expand All @@ -77,6 +75,7 @@ public void setLocalWebDriver() throws IOException {
options.addArguments("--disable-logging");
options.addArguments("--no-sandbox");
options.addArguments("--disable-dev-shm-usage");
options.addArguments("--start-maximized");
options.addArguments("--headless=new");
driverThreadLocal.set(new ChromeDriver(src, options));
}
Expand Down
Loading