Skip to content
Snippets Groups Projects
Commit fbfb934c authored by Bernhard Johannes Berger's avatar Bernhard Johannes Berger
Browse files

Fine tuning in logging.

parent 52e3527e
No related branches found
No related tags found
No related merge requests found
Pipeline #244245 passed
Showing
with 71 additions and 16 deletions
......@@ -45,12 +45,18 @@
<scope>runtime</scope>
</dependency>
<!-- logback for logging (@runtime) -->
<!-- logback for logging -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.4.0</version>
<scope>runtime</scope>
<version>1.4.5</version>
</dependency>
<!-- Deltaspike uses JUL. Use the JUL bridge to reroute it SLF4J -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>2.0.6</version>
</dependency>
<!-- deltaspike -->
......
......@@ -4,7 +4,6 @@ PLUGIN_PATHS=`ls -d "${EVOALPATH}/plugins"/* | tr '\n' ':'`
CLASSPATH="-Dorg.jboss.logging.provider=slf4j \
--module-path ${EVOALPATH}/modules/:$PLUGIN_PATHS \
--add-modules ALL-MODULE-PATH \
--add-opens java.base/java.lang=guice \
--add-exports io.jenetics.base/io.jenetics.internal.math=de.evoal.core.main \
--add-exports io.jenetics.base/io.jenetics.internal.collection=de.evoal.core.main \
--add-exports io.jenetics.base/io.jenetics.internal.util=de.evoal.core.main \
......
......@@ -3,8 +3,11 @@ package de.evoal.core.api.board;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.event.Event;
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
import lombok.NonNull;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.LoggerFactory;
import javax.inject.Inject;
import java.util.HashMap;
......@@ -91,6 +94,24 @@ public class Blackboard {
* @param args The command line arguments.
*/
public void readArguments(final String[] args) {
for(String arg : args) {
if(!arg.startsWith("-B")) {
continue;
}
arg = arg.substring(2);
final int colonIndex = arg.indexOf('=');
final String entry = arg.substring(0, colonIndex);
final String value = arg.substring(colonIndex + 1);
if(CoreBlackboardEntries.LOGGING_LEVEL.equals(entry)) {
final Logger root = (Logger) LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME);
final Level level = Level.toLevel(value);
root.setLevel(level);
}
}
for(String arg : args) {
if(!arg.startsWith("-B")) {
continue;
......
......@@ -19,6 +19,12 @@ public class CoreBlackboardEntries implements BlackboardEntries {
*/
public static final String CONSTRAINT_FOLDER = "core:constraint-folder";
/**
* Parameter to specify for logging leven.
*/
@Commandline(main = "", name = "core:logging", doc = "Logging level to use (ERROR,WARN,INFO,DEBUG)")
public static final String LOGGING_LEVEL = "core:logging";
/**
* Number of evaluation runs.
*/
......
package de.evoal.core.api.ea.cdi;
import javax.enterprise.util.Nonbinding;
import javax.inject.Qualifier;
import java.lang.annotation.*;
/**
* Annotation for marking fitness functions.
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Qualifier
@Target({ElementType.TYPE})
public @interface Fitness {
/**
* @return Name of the fitness calculator.
*/
public String value();
}
......@@ -14,6 +14,7 @@ import org.apache.deltaspike.cdise.api.CdiContainer;
import org.apache.deltaspike.cdise.api.CdiContainerLoader;
import org.apache.deltaspike.core.api.provider.BeanProvider;
import org.apache.deltaspike.core.util.metadata.AnnotationInstanceProvider;
import org.slf4j.bridge.SLF4JBridgeHandler;
import java.lang.reflect.Field;
import java.util.*;
......@@ -25,14 +26,17 @@ import java.util.*;
@Slf4j
public final class Evoal {
public static void main(final String ... args) {
installJavaLoggingToSLF4JBridge();
log.info("Starting up EvoAl");
log.info("Booting CDI container");
final CdiContainer cdiContainer = CdiContainerLoader.getCdiContainer();
cdiContainer.boot();
cdiContainer.getContextControl().startContext(ApplicationScoped.class);
cdiContainer.getContextControl()
.startContext(ApplicationScoped.class);
if(args.length == 0) {
if(args.length == 0 || args.length == 1 && "--help".equals(args[0])) {
printUsage();
} else {
log.info("Setting up black board");
......@@ -62,6 +66,11 @@ public final class Evoal {
cdiContainer.shutdown();
}
private static void installJavaLoggingToSLF4JBridge() {
SLF4JBridgeHandler.removeHandlersForRootLogger();
SLF4JBridgeHandler.install();
}
private static void printUsage() {
System.out.println();
System.out.println();
......
......@@ -31,7 +31,7 @@ documentation = """
Evaluates a heuristic search using multiple targets.
Each target is searched for 'core:evaluation-iterations' times to allow a
proper empirical evaluation.
proper empirical evaluation.
"""
)
@ApplicationScoped
......
package de.evoal.core.main.statistics.fitness;
import de.evoal.core.api.board.CoreBlackboardEntries;
import de.evoal.core.api.cdi.BlackboardValue;
import de.evoal.core.api.ea.fitness.comparator.FitnessValue;
import de.evoal.core.api.properties.Properties;
import de.evoal.core.api.properties.PropertiesSpecification;
import de.evoal.core.api.statistics.*;
import de.evoal.languages.model.instance.Instance;
......
......@@ -13,6 +13,8 @@ module de.evoal.core.main {
requires lombok;
requires org.slf4j;
requires jul.to.slf4j;
requires ch.qos.logback.classic;
requires io.jenetics.base;
requires io.jenetics.ext;
......
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
</encoder>
</appender>
<logger name="de.evoal" level="INFO" />
<logger name="org.jboss.weld" level="DEBUG" />
<logger name="org.jboss.weld.level" level="DEBUG" />
<root level="INFO">
<root level="ERROR">
<appender-ref ref="STDOUT" />
</root>
</configuration>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment