diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 000000000..df590fd94
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,25 @@
+# This workflow will build a Java project with Maven
+
+name: Java CI with Maven
+
+on:
+ push:
+ branches: [ "master" ]
+ pull_request:
+ branches: [ "master" ]
+
+jobs:
+ build:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Java
+ uses: actions/setup-java@v2
+ with:
+ java-version: '8'
+ distribution: 'zulu'
+ cache: 'maven'
+ - name: Build with Maven
+ run: mvn -B package --file pom.xml
diff --git a/.github/workflows/sonarcloud.yml b/.github/workflows/sonarcloud.yml
index 61fd97f79..498252aac 100644
--- a/.github/workflows/sonarcloud.yml
+++ b/.github/workflows/sonarcloud.yml
@@ -39,10 +39,10 @@ jobs:
steps:
- uses: actions/checkout@v2
- - name: Set up Java
+ - name: Set up JDK 11
uses: actions/setup-java@v2
with:
- java-version: '8'
+ java-version: '11'
distribution: 'zulu'
cache: 'maven'
diff --git a/.gitignore b/.gitignore
index 0e13eebbe..04acdd956 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,3 +9,4 @@ buildNumber.properties
.mvn/timing.properties
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
.mvn/wrapper/maven-wrapper.jar
+/logs/
diff --git a/pom.xml b/pom.xml
index fd9087a99..6426c84b3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -60,6 +60,26 @@
mastodon
${mastodon.version}
+
+
+
+ org.slf4j
+ slf4j-api
+
+
+
+
+ ch.qos.logback
+ logback-classic
+ test
+
+
+
+ ch.qos.logback
+ logback-core
+ test
+
+
sc.fiji
spim_data
@@ -126,7 +146,7 @@
https://maven.scijava.org/content/groups/public
-
+
coverage
diff --git a/src/test/java/org/mastodon/mamut/deeplineage/StartImageJ.java b/src/test/java/org/mastodon/mamut/deeplineage/StartImageJ.java
index f9236a9fe..75d57ab65 100644
--- a/src/test/java/org/mastodon/mamut/deeplineage/StartImageJ.java
+++ b/src/test/java/org/mastodon/mamut/deeplineage/StartImageJ.java
@@ -30,6 +30,10 @@
import org.scijava.Context;
import org.scijava.ui.UIService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.lang.invoke.MethodHandles;
/**
* Shows the ImageJ main window, with Mastodon installed.
@@ -38,8 +42,11 @@
*/
public class StartImageJ
{
+ private static final Logger logger = LoggerFactory.getLogger( MethodHandles.lookup().lookupClass() );
+
public static void main( String... args )
{
+ logger.info( "Starting ImageJ..." );
Context context = new Context();
UIService uiService = context.service( UIService.class );
uiService.showUI();
diff --git a/src/test/resources/logback-test.xml b/src/test/resources/logback-test.xml
new file mode 100644
index 000000000..264824a5a
--- /dev/null
+++ b/src/test/resources/logback-test.xml
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+
+
+ %highlight(%-5level) %d{yyyy-MM-dd HH:mm:ss.SSS} [%blue(%t)] \(%file:%line\) - %m%n
+
+
+
+ INFO
+
+
+
+
+ %highlight(%-5level) %d{yyyy-MM-dd HH:mm:ss.SSS} [%blue(%t)] \(%file:%line\) - %m%n
+
+
+
+ WARN
+
+
+
+ ${LOGS}/trace.log
+
+ %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5p [%c{1}:%M:%L] - %m%n
+
+
+
+ ${LOGS}/trace.%d{yyyy-MM-dd}.%i.log.zip
+
+ 20MB
+ 60
+ 1GB
+
+
+ TRACE
+
+
+
+ ${LOGS}/debug.log
+
+ %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5p [%c{1}:%M:%L] - %m%n
+
+
+
+ ${LOGS}/debug.%d{yyyy-MM-dd}.%i.log.zip
+
+ 20MB
+ 60
+ 1GB
+
+
+ DEBUG
+
+
+
+ ${LOGS}/info.log
+
+ %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5p [%c{1}:%M:%L] - %m%n
+
+
+
+ ${LOGS}/info.%d{yyyy-MM-dd}.%i.log.zip
+
+ 20MB
+ 60
+ 1GB
+
+
+ INFO
+
+
+
+ ${LOGS}/warn.log
+
+ %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5p [%c{1}:%M:%L] - %m%n
+
+
+
+ ${LOGS}/warn.%d{yyyy-MM-dd}.%i.log.zip
+
+ 20MB
+ 60
+ 1GB
+
+
+ WARN
+
+
+
+ ${LOGS}/error.log
+
+ %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5p [%c{1}:%M:%L] - %m%n
+
+
+
+ ${LOGS}/error.%d{yyyy-MM-dd}.%i.log.zip
+
+ 20MB
+ 60
+ 1GB
+
+
+ ERROR
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+