diff --git a/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/CopyAction.java b/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/CopyAction.java
index 7ccc8d9a62a6f977ac9c21959d75b0ce7f2a99f6..9d5523461253e121cc70ae15bd145f67787a71cb 100644
--- a/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/CopyAction.java
+++ b/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/CopyAction.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.cdplugin.copypaste;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import jp.sbi.celldesigner.plugin.PluginListOf;
 import jp.sbi.celldesigner.plugin.PluginReaction;
@@ -21,7 +21,7 @@ public class CopyAction extends CopyPasteAbstractAction {
   /**
    * Default class logger.
    */
-  private final Logger logger = Logger.getLogger(CopyAction.class.getName());
+  private final Logger logger = LogManager.getLogger(CopyAction.class.getName());
 
   /**
    * Method that perform annotation of a CellDesigner species listed in
diff --git a/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/CopyPasteAbstractAction.java b/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/CopyPasteAbstractAction.java
index bc1884ceaa768fa18fff7c452cc804064c76469e..176851f3923f71c6c946f937801ac246ba06c907 100644
--- a/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/CopyPasteAbstractAction.java
+++ b/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/CopyPasteAbstractAction.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.cdplugin.copypaste;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Pair;
 import lcsb.mapviewer.common.exception.InvalidXmlSchemaException;
@@ -24,7 +24,7 @@ public class CopyPasteAbstractAction {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private final Logger logger = Logger.getLogger(CopyPasteAbstractAction.class);
+  private final Logger logger = LogManager.getLogger(CopyPasteAbstractAction.class);
 
   /**
    * Prefix used for serialization/deserialization of {@link MiriamData} to string
diff --git a/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/CopyPastePlugin.java b/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/CopyPastePlugin.java
index f46d33752d4fec1cac99e97f1e9e54a97095c97d..c14384bf52ed1e206312cafacf3b290fd2a5f848 100644
--- a/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/CopyPastePlugin.java
+++ b/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/CopyPastePlugin.java
@@ -4,7 +4,7 @@ import java.awt.KeyEventDispatcher;
 import java.awt.KeyboardFocusManager;
 import java.awt.event.KeyEvent;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import jp.sbi.celldesigner.MainWindow;
 import jp.sbi.celldesigner.plugin.CellDesignerPlugin;
@@ -32,7 +32,7 @@ public class CopyPastePlugin extends CellDesignerPlugin {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(CopyPastePlugin.class.getName());
+  private Logger logger = LogManager.getLogger(CopyPastePlugin.class.getName());
   /**
    * Main window of cell designer.
    */
diff --git a/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/CopyPluginAction.java b/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/CopyPluginAction.java
index 1e4df5508ac9fae126c5460915f351b7dc92cf1f..fa0f5126a999304f73a6422e645de50e0ff26ff6 100644
--- a/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/CopyPluginAction.java
+++ b/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/CopyPluginAction.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.cdplugin.copypaste;
 
 import java.awt.event.ActionEvent;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import jp.sbi.celldesigner.MainWindow;
 import jp.sbi.celldesigner.plugin.PluginAction;
@@ -20,7 +20,7 @@ public class CopyPluginAction extends PluginAction {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(PasteAction.class.getName());
+  private Logger logger = LogManager.getLogger(PasteAction.class.getName());
 
   /**
    * 
diff --git a/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/PasteAction.java b/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/PasteAction.java
index f50025facb0a467f8a4bc22e1805fbc3e33ca078..f3b9787030e822383f87c143ddc0f70e6d0f9156 100644
--- a/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/PasteAction.java
+++ b/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/PasteAction.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.cdplugin.copypaste;
 
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import jp.sbi.celldesigner.plugin.PluginListOf;
 import jp.sbi.celldesigner.plugin.PluginReaction;
@@ -25,7 +25,7 @@ public class PasteAction extends CopyPasteAbstractAction {
   /**
    * Default class logger.
    */
-  private final Logger logger = Logger.getLogger(PasteAction.class.getName());
+  private final Logger logger = LogManager.getLogger(PasteAction.class.getName());
 
   /**
    * Method that perform annotation of a CellDesigner species listed in
diff --git a/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/PastePluginAction.java b/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/PastePluginAction.java
index 83cb961f68beabae2004e7d45b38ea1632329d5d..f69c2f31e449d443051306a218247f62e6fd9c8f 100644
--- a/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/PastePluginAction.java
+++ b/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/PastePluginAction.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.cdplugin.copypaste;
 
 import java.awt.event.ActionEvent;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import jp.sbi.celldesigner.MainWindow;
 import jp.sbi.celldesigner.plugin.PluginAction;
@@ -20,7 +20,7 @@ public class PastePluginAction extends PluginAction {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(PasteAction.class.getName());
+  private Logger logger = LogManager.getLogger(PasteAction.class.getName());
   /**
    * 
    */
diff --git a/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/info/InfoFrame.java b/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/info/InfoFrame.java
index c1ed38a65dd4e5147cc6e5dea7acbde43261fbf6..050427addedb5464102cb1cb92a62f8c1e605892 100644
--- a/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/info/InfoFrame.java
+++ b/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/info/InfoFrame.java
@@ -18,7 +18,7 @@ import javax.swing.JScrollPane;
 import javax.swing.JTextArea;
 import javax.swing.JTextField;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import jp.sbi.celldesigner.plugin.PluginSpeciesAlias;
 
@@ -66,7 +66,7 @@ public final class InfoFrame {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private final Logger logger = Logger.getLogger(InfoFrame.class);
+  private final Logger logger = LogManager.getLogger(InfoFrame.class);
 
   /**
    * Instance of the JFrame representation of windows.
diff --git a/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/info/InfoPlugin.java b/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/info/InfoPlugin.java
index 84f47840dfe89e0cda323b18bef310c994ba1b35..92fa61f158c8314eca67f4e1d31877a66a02159e 100644
--- a/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/info/InfoPlugin.java
+++ b/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/info/InfoPlugin.java
@@ -10,7 +10,7 @@ import java.util.List;
 
 import javax.swing.Timer;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import jp.sbi.celldesigner.plugin.CellDesignerPlugin;
 import jp.sbi.celldesigner.plugin.PluginListOf;
@@ -43,7 +43,7 @@ public class InfoPlugin extends CellDesignerPlugin {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(InfoPlugin.class.getName());
+  private Logger logger = LogManager.getLogger(InfoPlugin.class.getName());
 
   /**
    * Listener called when set of selected elements in cell designer changed.
diff --git a/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/CdPluginFunctions.java b/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/CdPluginFunctions.java
index 778b0f071490a29f21d0aa99983a6929aa655c48..98dcfa9c7778ac3ccf5ef4d4f264d8ba2861c452 100644
--- a/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/CdPluginFunctions.java
+++ b/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/CdPluginFunctions.java
@@ -2,8 +2,9 @@ package lcsb.mapviewer.cdplugin;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
-import org.apache.log4j.spi.LoggingEvent;
+import org.apache.logging.log4j.*;
+import org.apache.logging.log4j.core.LogEvent;
+
 import org.junit.After;
 import org.junit.Before;
 import org.mockito.Mockito;
@@ -12,7 +13,8 @@ import jp.sbi.celldesigner.plugin.PluginListOf;
 import jp.sbi.celldesigner.plugin.PluginReaction;
 import jp.sbi.celldesigner.plugin.PluginSpecies;
 import jp.sbi.celldesigner.plugin.PluginSpeciesAlias;
-import lcsb.mapviewer.common.EventStorageLoggerAppender;
+
+import lcsb.mapviewer.common.MinervaLoggerAppender;
 
 public class CdPluginFunctions {
 
@@ -27,29 +29,28 @@ public class CdPluginFunctions {
       "</rdf:Description>\n" +
       "</rdf:RDF>\n";
 
-  private EventStorageLoggerAppender appender;
+  private MinervaLoggerAppender appender;
 
   @Before
   public final void _setUp() throws Exception {
-    Logger.getRootLogger().removeAppender(appender);
-    appender = new EventStorageLoggerAppender(false);
-    Logger.getRootLogger().addAppender(appender);
+    MinervaLoggerAppender.unregisterLogEventStorage(appender);
+    appender = MinervaLoggerAppender.createAppender(false);
   }
 
   @After
   public final void _tearDown() throws Exception {
-    Logger.getRootLogger().removeAppender(appender);
+    MinervaLoggerAppender.unregisterLogEventStorage(appender);
   }
 
-  protected List<LoggingEvent> getWarnings() {
+  protected List<LogEvent> getWarnings() {
     return appender.getWarnings();
   }
 
-  protected List<LoggingEvent> getErrors() {
+  protected List<LogEvent> getErrors() {
     return appender.getErrors();
   }
 
-  protected List<LoggingEvent> getFatals() {
+  protected List<LogEvent> getFatals() {
     return appender.getFatals();
   }
 
diff --git a/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/copypaste/CopyActionTest.java b/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/copypaste/CopyActionTest.java
index ec73f5f1785e3ecb1e24657aa62fbeefe3f061ab..d4ce487f085efd74cd4f67923ccbcc29e51b6e89 100644
--- a/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/copypaste/CopyActionTest.java
+++ b/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/copypaste/CopyActionTest.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.cdplugin.copypaste;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.mockito.Mockito;
 
@@ -12,7 +12,7 @@ import lcsb.mapviewer.cdplugin.CdPluginFunctions;
 import lcsb.mapviewer.common.SystemClipboard;
 
 public class CopyActionTest extends CdPluginFunctions {
-  Logger logger = Logger.getLogger(CopyActionTest.class);
+  Logger logger = LogManager.getLogger(CopyActionTest.class);
 
   SystemClipboard cp = new SystemClipboard();
 
diff --git a/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/copypaste/CopyPasteAbstractActionTest.java b/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/copypaste/CopyPasteAbstractActionTest.java
index d1b7ccd956a2a69f1d8f6ab98a4ca55e0723e172..193fa63642653bca05a885e130bcdb34b1b6ce36 100644
--- a/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/copypaste/CopyPasteAbstractActionTest.java
+++ b/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/copypaste/CopyPasteAbstractActionTest.java
@@ -6,7 +6,7 @@ import static org.junit.Assert.assertNull;
 
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -17,7 +17,7 @@ import lcsb.mapviewer.model.map.MiriamRelationType;
 import lcsb.mapviewer.model.map.MiriamType;
 
 public class CopyPasteAbstractActionTest {
-  Logger logger = Logger.getLogger(CopyPasteAbstractActionTest.class);
+  Logger logger = LogManager.getLogger(CopyPasteAbstractActionTest.class);
 
   @Before
   public void setUp() throws Exception {
diff --git a/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/info/InfoFrameTest.java b/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/info/InfoFrameTest.java
index d4aa5ee001e9a15832bac43973a7ac0bc5cbeaec..29dd1d8ba517ce7dc47b9dd33b370019a5a341de 100644
--- a/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/info/InfoFrameTest.java
+++ b/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/info/InfoFrameTest.java
@@ -6,14 +6,14 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 
 import jp.sbi.celldesigner.plugin.PluginSpeciesAlias;
 import lcsb.mapviewer.cdplugin.CdPluginFunctions;
 
 public class InfoFrameTest extends CdPluginFunctions {
-  Logger logger = Logger.getLogger(InfoFrameTest.class);
+  Logger logger = LogManager.getLogger(InfoFrameTest.class);
 
   @Test
   public void testSetEmptySpeciesList() {
diff --git a/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/info/InfoPluginTest.java b/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/info/InfoPluginTest.java
index a13b986fc5e43facdfd28b9db560b48aeef7111a..6a5190e039bf0021a9753d90a6b1bc52a7f44c6d 100644
--- a/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/info/InfoPluginTest.java
+++ b/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/info/InfoPluginTest.java
@@ -5,7 +5,7 @@ import static org.junit.Assert.assertEquals;
 import java.util.Arrays;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 
 import jp.sbi.celldesigner.plugin.PluginSpeciesAlias;
@@ -13,7 +13,7 @@ import lcsb.mapviewer.cdplugin.CdPluginFunctions;
 
 public class InfoPluginTest extends CdPluginFunctions {
 
-  Logger logger = Logger.getLogger(InfoPluginTest.class);
+  Logger logger = LogManager.getLogger(InfoPluginTest.class);
 
   @Test
   public void testConstructor() {
diff --git a/CellDesigner-plugin/src/test/resources/log4j.properties b/CellDesigner-plugin/src/test/resources/log4j.properties
deleted file mode 100644
index e66aa395621b6423c2efe274234336b4d1baf858..0000000000000000000000000000000000000000
--- a/CellDesigner-plugin/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-#Set root logger 's level and its appender to an appender called CONSOLE which is defined below.
-log4j.rootLogger=info, CONSOLE
-
-#Set the behavior of the CONSOLE appender 
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-#log4j.appender.CONSOLE.layout.ConversionPattern=%m%n
-
-
-#Set the behavior of the FILE appender 
-log4j.appender.R=org.apache.log4j.FileAppender
-log4j.appender.R.File=${catalina.home}/logs/MapViewer.log
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-
-
-log4j.logger.org.springframework=warn
-log4j.logger.org.hibernate=warn
-log4j.logger.lcsb=debug
diff --git a/CellDesigner-plugin/src/test/resources/log4j2.properties b/CellDesigner-plugin/src/test/resources/log4j2.properties
new file mode 100644
index 0000000000000000000000000000000000000000..b5eaa32682d177bf266eb6ed4831b4e8f4b9135d
--- /dev/null
+++ b/CellDesigner-plugin/src/test/resources/log4j2.properties
@@ -0,0 +1,25 @@
+rootLogger.level = INFO
+appenders = console
+
+appender.console.type = Console
+appender.console.name = STDOUT
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %d %5p [%t] (%F:%L) - %m%n
+
+rootLogger.appenderRefs = console
+
+rootLogger.appenderRef.console.ref = STDOUT
+
+logger.minerva.name = lcsb
+logger.minerva.level = debug
+logger.minerva-persist.name = lcsb.mapviewer.persist.DbUtils
+logger.minerva-persist.level = info
+logger.minerva-cache.name = lcsb.mapviewer.annotation.cache
+logger.minerva-cache.level = info
+
+
+logger.springframework.name = org.springframework
+logger.springframework.level = warn
+
+logger.hibernate.name = org.hibernate
+logger.hibernate.level = warn
diff --git a/annotation/pom.xml b/annotation/pom.xml
index 52fb956262f6c7592ad30f17860ed5a3454cc2e4..a9225984b57559648a4da39b5f52cf283bb1ddf7 100644
--- a/annotation/pom.xml
+++ b/annotation/pom.xml
@@ -65,11 +65,34 @@
 			<version>1.0</version>
 		</dependency>
 
-		<!-- Log4J -->
+		<!-- Log4J2 -->
 		<dependency>
-			<groupId>log4j</groupId>
-			<artifactId>log4j</artifactId>
-			<version>${log4j.version}</version>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-api</artifactId>
+			<version>${log4j2.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-core</artifactId>
+			<version>${log4j2.version}</version>
+		</dependency>
+		<!-- Spring uses commons-logging, so: https://stackoverflow.com/a/41475146/1127920 -->
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-jcl</artifactId>
+			<version>2.11.2</version>
+		</dependency>
+
+		<dependency>
+			<groupId>javax.mail</groupId>
+			<artifactId>mail</artifactId>
+			<version>1.4.7</version>
+		</dependency>
+
+		<dependency>
+			<groupId>commons-io</groupId>
+			<artifactId>commons-io</artifactId>
+			<version>${commons-io.version}</version>
 		</dependency>
 
 		<!-- XML parser -->
@@ -154,23 +177,6 @@
 			<version>${springframework.version}</version>
 		</dependency>
 
-		<!-- Miriam registry API -->
-		<dependency>
-			<groupId>uk.ac.ebi.miriam</groupId>
-			<artifactId>miriam-lib</artifactId>
-			<version>${miriam-lib.version}</version>
-			<exclusions>
-				<exclusion>
-					<groupId>log4j</groupId>
-					<artifactId>log4j</artifactId>
-				</exclusion>
-				<exclusion>
-					<groupId>commons-logging</groupId>
-					<artifactId>commons-logging</artifactId>
-				</exclusion>
-			</exclusions>
-		</dependency>
-
 		<!-- Utils used for connection via http -->
 		<dependency>
 			<groupId>org.apache.httpcomponents</groupId>
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/cache/ApplicationLevelCache.java b/annotation/src/main/java/lcsb/mapviewer/annotation/cache/ApplicationLevelCache.java
index 59a9b26a4af5a09b46427dd1d3e0ca2b970380fa..ac69ec6114d7bc07e3163556cd5c1fce7eff66bd 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/cache/ApplicationLevelCache.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/cache/ApplicationLevelCache.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.annotation.cache;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Service;
 import org.w3c.dom.Node;
 
@@ -31,7 +31,7 @@ public final class ApplicationLevelCache implements QueryCacheInterface {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(ApplicationLevelCache.class);
+  private static Logger logger = LogManager.getLogger(ApplicationLevelCache.class);
 
   /**
    * Cached nodes stored locally and identified by string.
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/cache/BigFileCache.java b/annotation/src/main/java/lcsb/mapviewer/annotation/cache/BigFileCache.java
index d376c55a74c17d5a67240ca52ddeca88652ba052..44c205e061d7abd1d6f84ba2cf436a73d8f6561c 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/cache/BigFileCache.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/cache/BigFileCache.java
@@ -27,7 +27,7 @@ import org.apache.commons.net.ftp.FTP;
 import org.apache.commons.net.ftp.FTPClient;
 import org.apache.commons.net.ftp.FTPFile;
 import org.apache.commons.net.ftp.FTPReply;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import lcsb.mapviewer.common.Configuration;
@@ -58,7 +58,7 @@ public class BigFileCache {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(BigFileCache.class);
+  private Logger logger = LogManager.getLogger(BigFileCache.class);
 
   /**
    * Access class for database objects storing statuses of the files.
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/cache/CachableInterface.java b/annotation/src/main/java/lcsb/mapviewer/annotation/cache/CachableInterface.java
index d64f6eb8025fd4fd894a2e8db610a3d14b289cd4..6e172786a3df57d847dd84e7ca137c3e3358b18a 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/cache/CachableInterface.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/cache/CachableInterface.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.annotation.cache;
 import java.io.IOException;
 
 import org.apache.commons.lang3.StringEscapeUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.w3c.dom.Node;
 
@@ -23,7 +23,7 @@ public abstract class CachableInterface {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(CachableInterface.class);
+  private static Logger logger = LogManager.getLogger(CachableInterface.class);
 
   /**
    * Refresh cache data from original source.
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/cache/GeneralCache.java b/annotation/src/main/java/lcsb/mapviewer/annotation/cache/GeneralCache.java
index 1feb1a39aaa18a0ca0699a65b62bc79ea40f8c63..360a50c391c6d73467c769ebc1f6ac26ba3ae3ff 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/cache/GeneralCache.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/cache/GeneralCache.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.annotation.cache;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
@@ -26,7 +26,7 @@ public class GeneralCache implements GeneralCacheInterface {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(GeneralCache.class);
+  private static Logger logger = LogManager.getLogger(GeneralCache.class);
 
   /**
    * Application level cache. More information can be found
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/cache/GeneralCacheWithExclusion.java b/annotation/src/main/java/lcsb/mapviewer/annotation/cache/GeneralCacheWithExclusion.java
index 84676a13dfe4d4a61c940c26f34452ade1e094e2..1a82107082005ae425b50378114411e57535b1e0 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/cache/GeneralCacheWithExclusion.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/cache/GeneralCacheWithExclusion.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.annotation.cache;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Node;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
@@ -22,7 +22,7 @@ public class GeneralCacheWithExclusion implements GeneralCacheInterface {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(GeneralCacheWithExclusion.class);
+  private Logger logger = LogManager.getLogger(GeneralCacheWithExclusion.class);
 
   /**
    * How many queries should be ignored.
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/cache/PermanentDatabaseLevelCache.java b/annotation/src/main/java/lcsb/mapviewer/annotation/cache/PermanentDatabaseLevelCache.java
index b55e206cb8a07c5372b27f6d63ed4825959cc57a..5d5059a89ade105340b8b68b3a4ba50ea1b02aad 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/cache/PermanentDatabaseLevelCache.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/cache/PermanentDatabaseLevelCache.java
@@ -13,7 +13,7 @@ import java.util.concurrent.ThreadFactory;
 
 import javax.annotation.PostConstruct;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.aop.framework.Advised;
 import org.springframework.aop.support.AopUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -406,7 +406,7 @@ public class PermanentDatabaseLevelCache implements PermanentDatabaseLevelCacheI
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(PermanentDatabaseLevelCache.class);
+  private static Logger logger = LogManager.getLogger(PermanentDatabaseLevelCache.class);
 
   /**
    * Data access object for query entries accessed by string key.
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/cache/WebPageDownloader.java b/annotation/src/main/java/lcsb/mapviewer/annotation/cache/WebPageDownloader.java
index 05e3f7d4068c274426931f105ba788cd493990e5..f22b0530b3fcc57a837e11164080797c53373d3a 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/cache/WebPageDownloader.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/cache/WebPageDownloader.java
@@ -15,7 +15,7 @@ import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.annotation.services.WrongResponseCodeIOException;
 
@@ -36,7 +36,7 @@ public class WebPageDownloader {
 	/**
 	 * Default class logger.
 	 */
-	private final Logger		 logger																		= Logger.getLogger(WebPageDownloader.class);
+	private final Logger		 logger																		= LogManager.getLogger(WebPageDownloader.class);
 
 	/**
 	 * Hard timeout (threads are terminated) of http connection that access data
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/cache/XmlSerializer.java b/annotation/src/main/java/lcsb/mapviewer/annotation/cache/XmlSerializer.java
index 0783e5c99e0e7a019a9aaa01cedd712d89e0d112..3f4189908b9602ede22cc0363c2af70de9b86480 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/cache/XmlSerializer.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/cache/XmlSerializer.java
@@ -8,7 +8,7 @@ import javax.xml.bind.Marshaller;
 import javax.xml.bind.Unmarshaller;
 
 import org.apache.commons.lang3.SerializationException;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Node;
 
 /**
@@ -25,7 +25,7 @@ public class XmlSerializer<T> {
 	/**
 	 * Default class logger.
 	 */
-	private final Logger			 logger	= Logger.getLogger(XmlSerializer.class);
+	private final Logger			 logger	= LogManager.getLogger(XmlSerializer.class);
 
 	/**
 	 * Class of the object that DAO works on.
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/data/Chebi.java b/annotation/src/main/java/lcsb/mapviewer/annotation/data/Chebi.java
index 66f1f1782b1d3c4da497211efe11c51adb17de44..00e4d1f0fc5f55c3dbd0d1ae88823fcdefbd522d 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/data/Chebi.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/data/Chebi.java
@@ -6,7 +6,7 @@ import java.util.List;
 
 import javax.xml.bind.annotation.XmlRootElement;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import uk.ac.ebi.chebi.webapps.chebiWS.model.DataItem;
 import uk.ac.ebi.chebi.webapps.chebiWS.model.Entity;
@@ -30,7 +30,7 @@ public class Chebi implements Serializable {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger				logger					 = Logger.getLogger(Chebi.class);
+	private static Logger				logger					 = LogManager.getLogger(Chebi.class);
 
 	/**
 	 * Name of the object.
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/data/Drug.java b/annotation/src/main/java/lcsb/mapviewer/annotation/data/Drug.java
index ea8576f003697f104b513d70746c866d79439743..d4e786a0654921a3899a2098d4d0533bd84f23f9 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/data/Drug.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/data/Drug.java
@@ -8,7 +8,7 @@ import java.util.List;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.comparator.StringComparator;
 import lcsb.mapviewer.model.map.MiriamData;
@@ -30,7 +30,7 @@ public class Drug implements Serializable, TargettingStructure {
 	/**
 	 * Default class logger.
 	 */
-	private static Logger			logger						= Logger.getLogger(Drug.class);
+	private static Logger			logger						= LogManager.getLogger(Drug.class);
 
 	/**
 	 * Source of the data.
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/data/MeSH.java b/annotation/src/main/java/lcsb/mapviewer/annotation/data/MeSH.java
index 68eae86800919946efb37f76598edb1800d4846f..dfe74c5eb9ff137fad218587a2d4ab530e5a1824 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/data/MeSH.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/data/MeSH.java
@@ -8,7 +8,7 @@ import java.util.Set;
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * This class represents <a href="http://www.nlm.nih.gov/cgi/mesh//">MeSH</a>
@@ -29,7 +29,7 @@ public class MeSH implements Serializable {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger			logger					 = Logger.getLogger(MeSH.class);
+	private static Logger			logger					 = LogManager.getLogger(MeSH.class);
 
 	/**
 	 * short name.
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/data/Target.java b/annotation/src/main/java/lcsb/mapviewer/annotation/data/Target.java
index 6c71b4072eba9fbad6d971265353193cfeeeccd4..20c0eaa0adff6f29b85c204b132d79908ce8a06d 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/data/Target.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/data/Target.java
@@ -7,7 +7,7 @@ import java.util.List;
 
 import javax.xml.bind.annotation.XmlElement;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.model.map.MiriamData;
@@ -29,7 +29,7 @@ public class Target implements Serializable {
   /**
    * Default class logger.
    */
-  private static transient Logger logger = Logger.getLogger(Target.class);
+  private static transient Logger logger = LogManager.getLogger(Target.class);
 
   /**
    * Database from which target was received.
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/ChEMBLParser.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/ChEMBLParser.java
index 9b7e32922491af5fce7203928d07580eca51317a..ed43d7470bf9ebd838013445d7665ebaaee3505e 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/ChEMBLParser.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/ChEMBLParser.java
@@ -9,7 +9,7 @@ import java.util.List;
 import java.util.Set;
 
 import lcsb.mapviewer.common.XmlParser;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.w3c.dom.Document;
@@ -99,7 +99,7 @@ public class ChEMBLParser extends DrugAnnotation implements IExternalService {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(ChEMBLParser.class);
+  private Logger logger = LogManager.getLogger(ChEMBLParser.class);
 
   /**
    * Service used for annotation of proteins using {@link MiriamType#UNIPROT
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/ChemicalParser.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/ChemicalParser.java
index 0ecb5a69cd2729897edb9741d978deb14881ee49..014ea5719388f497de52dd87301540f39827fd61 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/ChemicalParser.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/ChemicalParser.java
@@ -14,7 +14,7 @@ import java.util.regex.Pattern;
 
 import org.apache.commons.lang3.SerializationException;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.w3c.dom.Node;
@@ -50,7 +50,7 @@ public class ChemicalParser extends CachableInterface implements IExternalServic
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(ChemicalParser.class);
+  private Logger logger = LogManager.getLogger(ChemicalParser.class);
 
   /**
    * Prefix used for caching elements with chemical identifier as a key.
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/DrugAnnotation.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/DrugAnnotation.java
index 8f9146ab17d5d3b57841bc875ddad536fa62dc29..5cc8c49bbdc21f7b8fcd5ed224e278e6094ea3bb 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/DrugAnnotation.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/DrugAnnotation.java
@@ -9,7 +9,7 @@ import java.util.List;
 import java.util.Set;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import lcsb.mapviewer.annotation.cache.CachableInterface;
@@ -43,7 +43,7 @@ public abstract class DrugAnnotation extends CachableInterface {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(DrugAnnotation.class);
+  private Logger logger = LogManager.getLogger(DrugAnnotation.class);
 
   /**
    * Object that allows to serialize {@link Drug} elements into xml string and
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/DrugbankHTMLParser.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/DrugbankHTMLParser.java
index a8da8713af3b99ef2f28c7377df707425c455081..31fa6e00093ee2e51b5f51442effec2f810c17db 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/DrugbankHTMLParser.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/DrugbankHTMLParser.java
@@ -13,7 +13,7 @@ import java.util.regex.Pattern;
 
 import org.apache.commons.lang3.SerializationException;
 import org.apache.commons.lang3.StringEscapeUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import lcsb.mapviewer.annotation.cache.GeneralCacheInterface;
@@ -66,7 +66,7 @@ public class DrugbankHTMLParser extends DrugAnnotation implements IExternalServi
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(DrugbankHTMLParser.class);
+  private Logger logger = LogManager.getLogger(DrugbankHTMLParser.class);
 
   /**
    * Url used for finding drug by drug name.
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/MeSHParser.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/MeSHParser.java
index c76bcb1d4714383eefac7084cf678492915ec471..f178fc9cefafb3c53298e187c97fc7e5f54d6f54 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/MeSHParser.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/MeSHParser.java
@@ -10,7 +10,7 @@ import java.util.Set;
 
 import org.apache.commons.lang3.SerializationException;
 import org.apache.http.HttpStatus;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Service;
 import org.w3c.dom.Node;
 
@@ -54,7 +54,7 @@ public class MeSHParser extends CachableInterface implements IExternalService {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(MeSHParser.class);
+  private Logger logger = LogManager.getLogger(MeSHParser.class);
 
   /**
    * Object that allows to serialize {@link MeSH} elements into xml string and
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/MiRNAParser.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/MiRNAParser.java
index 36644f65e8e2dc32d70f593ffba8693ad4d0f61a..667b344062dcdead21ba4c6906ce382bf109cdb9 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/MiRNAParser.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/MiRNAParser.java
@@ -19,7 +19,7 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
 import org.apache.poi.poifs.filesystem.NotOLE2FileException;
 import org.apache.poi.ss.usermodel.Cell;
@@ -121,7 +121,7 @@ public class MiRNAParser extends CachableInterface implements IExternalService {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(MiRNAParser.class);
+  private Logger logger = LogManager.getLogger(MiRNAParser.class);
 
   /**
    * Class used to access information about organisms taxonomy.
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/MiriamConnector.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/MiriamConnector.java
index 95304a0ab11d0ce858017700cd42acc03ec3841f..c7f2ae3e6583d77f4029b0122015c47da0511ebc 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/MiriamConnector.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/MiriamConnector.java
@@ -2,8 +2,8 @@ package lcsb.mapviewer.annotation.services;
 
 import java.io.IOException;
 
-import lcsb.mapviewer.common.XmlParser;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.hibernate.AnnotationException;
 import org.springframework.stereotype.Service;
 import org.w3c.dom.Document;
@@ -13,11 +13,12 @@ import lcsb.mapviewer.annotation.cache.CachableInterface;
 import lcsb.mapviewer.annotation.cache.GeneralCacheInterface;
 import lcsb.mapviewer.annotation.cache.SourceNotAvailable;
 import lcsb.mapviewer.annotation.cache.WebPageDownloader;
+import lcsb.mapviewer.common.XmlParser;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
+import lcsb.mapviewer.common.exception.NotImplementedException;
 import lcsb.mapviewer.model.map.MiriamData;
 import lcsb.mapviewer.model.map.MiriamRelationType;
 import lcsb.mapviewer.model.map.MiriamType;
-import uk.ac.ebi.miriam.lib.MiriamLink;
 
 /**
  * Class responsible for connection to Miriam DB. It allows to update URI of
@@ -48,20 +49,13 @@ public final class MiriamConnector extends CachableInterface implements IExterna
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(MiriamConnector.class.getName());
-
-  /**
-   * Miriam Registry API.
-   */
-  private MiriamLink link;
+  private Logger logger = LogManager.getLogger(MiriamConnector.class);
 
   /**
    * Default class constructor. Prevent initialization.
    */
   public MiriamConnector() {
     super(MiriamConnector.class);
-    link = new MiriamLink();
-    link.setAddress("https://www.ebi.ac.uk/miriamws/main/MiriamWebServices");
   }
 
   /**
@@ -86,21 +80,22 @@ public final class MiriamConnector extends CachableInterface implements IExterna
       return result;
     }
     String uri = miriamData.getDataType().getUris().get(0) + ":" + miriamData.getResource();
-    String[] urls = getLink().getLocations(uri);
-    if (urls == null) {
-      result = null;
-    } else if (urls.length > 0) {
-      result = urls[0];
-    }
-    if (result != null) {
-      setCacheValue(query, result);
-      return result;
-    } else {
-      logger.warn("Cannot find url for miriam: " + miriamData);
-      // if url cannot be found then mark miriam data as invalid for one day
-      setCacheValue(query, INVALID_LINK, 1);
-      return null;
-    }
+    throw new NotImplementedException();
+//    String[] urls = getLink().getLocations(uri);
+//    if (urls == null) {
+//      result = null;
+//    } else if (urls.length > 0) {
+//      result = urls[0];
+//    }
+//    if (result != null) {
+//      setCacheValue(query, result);
+//      return result;
+//    } else {
+//      logger.warn("Cannot find url for miriam: " + miriamData);
+//      // if url cannot be found then mark miriam data as invalid for one day
+//      setCacheValue(query, INVALID_LINK, 1);
+//      return null;
+//    }
   }
 
   @Override
@@ -184,14 +179,15 @@ public final class MiriamConnector extends CachableInterface implements IExterna
    *         otherwise
    */
   public boolean isValid(String uri) {
-    boolean result = false;
-    String name = getLink().getName(uri);
-    if (name == null) {
-      result = false;
-    } else {
-      result = !name.isEmpty();
-    }
-    return result;
+    throw new NotImplementedException();
+//    boolean result = false;
+//    String name = getLink().getName(uri);
+//    if (name == null) {
+//      result = false;
+//    } else {
+//      result = !name.isEmpty();
+//    }
+//    return result;
   }
 
   /**
@@ -239,22 +235,4 @@ public final class MiriamConnector extends CachableInterface implements IExterna
   protected void setWebPageDownloader(WebPageDownloader webPageDownloader) {
     super.setWebPageDownloader(webPageDownloader);
   }
-
-  /**
-   * @return the link
-   * @see #link
-   */
-  MiriamLink getLink() {
-    return link;
-  }
-
-  /**
-   * @param link
-   *          the link to set
-   * @see #link
-   */
-  void setLink(MiriamLink link) {
-    this.link = link;
-  }
-
 }
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/ModelAnnotator.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/ModelAnnotator.java
index 0b5caced3e4778e5506566437843ccf09fc486ad..f2c88892795ebfb8784edf5323eba51e1c8bcea0 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/ModelAnnotator.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/ModelAnnotator.java
@@ -11,7 +11,7 @@ import java.util.Queue;
 import java.util.Set;
 
 import org.apache.commons.collections4.ListUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -61,7 +61,7 @@ public class ModelAnnotator {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(ModelAnnotator.class);
+  private static Logger logger = LogManager.getLogger(ModelAnnotator.class);
 
   /**
    * List of all avaliable {@link ElementAnnotator} objects.
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/PubmedParser.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/PubmedParser.java
index 550e615a008d9325176b5f13bf94c14780366a12..e26017f9f9e1d1df20cacc3be54e695172027aff 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/PubmedParser.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/PubmedParser.java
@@ -12,7 +12,7 @@ import javax.xml.xpath.XPathFactory;
 
 import lcsb.mapviewer.common.XmlParser;
 import org.apache.commons.lang3.SerializationException;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.w3c.dom.Document;
@@ -69,7 +69,7 @@ public class PubmedParser extends CachableInterface implements IExternalService
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(PubmedParser.class);
+  private Logger logger = LogManager.getLogger(PubmedParser.class);
 
   /**
    * Object that allows to serialize {@link Article} elements into xml string and
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/TaxonomyBackend.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/TaxonomyBackend.java
index bf130db39f776169036306e2bdee3cd66028814d..dffc032f828cbe619792969ded4d0b0d65469db3 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/TaxonomyBackend.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/TaxonomyBackend.java
@@ -5,7 +5,7 @@ import java.net.URLEncoder;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.annotation.cache.CachableInterface;
 import lcsb.mapviewer.annotation.cache.GeneralCacheInterface;
@@ -137,7 +137,7 @@ public class TaxonomyBackend extends CachableInterface implements IExternalServi
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(TaxonomyBackend.class);
+  private Logger logger = LogManager.getLogger(TaxonomyBackend.class);
 
   /**
    * Default constructor.
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/BiocompendiumAnnotator.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/BiocompendiumAnnotator.java
index 8211daf1476e1205bda8ac46660f0015cdb9ba46..1d84a47976756c32213aec9a0092e8f87e3b82e5 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/BiocompendiumAnnotator.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/BiocompendiumAnnotator.java
@@ -20,7 +20,7 @@ import org.apache.http.entity.ContentType;
 import org.apache.http.entity.mime.MultipartEntityBuilder;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Service;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
@@ -73,7 +73,7 @@ public class BiocompendiumAnnotator extends ElementAnnotator implements IExterna
   /**
    * Standard class logger.
    */
-  private final Logger logger = Logger.getLogger(BiocompendiumAnnotator.class);
+  private final Logger logger = LogManager.getLogger(BiocompendiumAnnotator.class);
 
   /**
    * Xml parser used for processing notes into structured data.
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/BrendaAnnotator.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/BrendaAnnotator.java
index d4588a159248204b680687d6bc4fe4f0e776f00c..5c123b67d7a340e3643b4d517046e26daa7455d9 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/BrendaAnnotator.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/BrendaAnnotator.java
@@ -5,7 +5,7 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -36,7 +36,7 @@ public class BrendaAnnotator extends ElementAnnotator implements IExternalServic
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(BrendaAnnotator.class);
+  private static Logger logger = LogManager.getLogger(BrendaAnnotator.class);
 
   /**
    * Service used for annotation of entities using {@link MiriamType#TAIR_LOCUS
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/CazyAnnotator.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/CazyAnnotator.java
index 4f816eebc645f7fde5ededb9d9da77c09f254178..c4ace692b75b9639318e90b97ed893aade40b3b2 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/CazyAnnotator.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/CazyAnnotator.java
@@ -9,7 +9,7 @@ import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -42,7 +42,7 @@ public class CazyAnnotator extends ElementAnnotator implements IExternalService
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(CazyAnnotator.class);
+  private static Logger logger = LogManager.getLogger(CazyAnnotator.class);
 
   /**
    * Service used for annotation of entities using {@link MiriamType#TAIR_LOCUS
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/ChebiAnnotator.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/ChebiAnnotator.java
index e12db6b686dcfaef31f300d8b9dcb691e4221fc3..355a9828d794e556b1dfdc1c9466cc498e96961d 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/ChebiAnnotator.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/ChebiAnnotator.java
@@ -10,7 +10,7 @@ import java.util.Set;
 
 import javax.xml.ws.WebServiceException;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Service;
 
 import lcsb.mapviewer.annotation.cache.GeneralCacheInterface;
@@ -112,7 +112,7 @@ public class ChebiAnnotator extends ElementAnnotator implements IExternalService
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(ChebiAnnotator.class);
+  private static Logger logger = LogManager.getLogger(ChebiAnnotator.class);
 
   /**
    * Client to chebi API.
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/ElementAnnotator.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/ElementAnnotator.java
index e25281c878b5cc13905117ae9073c1101527f143..68874cf7026611f8d32bdf2884d0de9bae9347cf 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/ElementAnnotator.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/ElementAnnotator.java
@@ -7,7 +7,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.annotation.cache.CachableInterface;
 import lcsb.mapviewer.common.comparator.StringSetComparator;
@@ -43,7 +43,7 @@ public abstract class ElementAnnotator extends CachableInterface {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(ElementAnnotator.class);
+  private static Logger logger = LogManager.getLogger(ElementAnnotator.class);
 
   /**
    * List of classes that can be annotated by this {@link IElementAnnotator
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/EnsemblAnnotator.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/EnsemblAnnotator.java
index a97761cc48947d36388d992a7895e4c754406c58..0b502b36f9c2e1c3517df3ca024685473fd0e032 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/EnsemblAnnotator.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/EnsemblAnnotator.java
@@ -7,7 +7,7 @@ import java.util.List;
 import java.util.Set;
 
 import lcsb.mapviewer.common.XmlParser;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Service;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -74,7 +74,7 @@ public class EnsemblAnnotator extends ElementAnnotator implements IExternalServi
   /**
    * Standard class logger.
    */
-  private final Logger logger = Logger.getLogger(EnsemblAnnotator.class);
+  private final Logger logger = LogManager.getLogger(EnsemblAnnotator.class);
 
   @Override
   public String getCommonName() {
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/EntrezAnnotator.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/EntrezAnnotator.java
index acd75f7b088e5e577a3291c2d56261cc7f310500..6ae860d282688160b31a218928d8026bd1eb4570 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/EntrezAnnotator.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/EntrezAnnotator.java
@@ -10,7 +10,7 @@ import java.util.List;
 import java.util.Set;
 
 import org.apache.commons.text.StringEscapeUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Service;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -105,7 +105,7 @@ public class EntrezAnnotator extends ElementAnnotator implements IExternalServic
   /**
    * Standard class logger.
    */
-  private final Logger logger = Logger.getLogger(EntrezAnnotator.class);
+  private final Logger logger = LogManager.getLogger(EntrezAnnotator.class);
 
   @Override
   public String getCommonName() {
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/GoAnnotator.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/GoAnnotator.java
index 9360e3e803e2370d87a4a47ebe28665b2638a02a..53669eecb73d0cea00f755faae2508ca45b0278f 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/GoAnnotator.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/GoAnnotator.java
@@ -6,7 +6,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -51,7 +51,7 @@ public class GoAnnotator extends ElementAnnotator implements IExternalService {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(GoAnnotator.class);
+  private Logger logger = LogManager.getLogger(GoAnnotator.class);
 
   /**
    * Connector used for accessing data from miriam registry.
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/HgncAnnotator.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/HgncAnnotator.java
index e88d025a162f5c48d30d03ff51dcee6bfca7da61..36aa9fb4a2a1d31cd7512ab6bcdcaafa2531deeb 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/HgncAnnotator.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/HgncAnnotator.java
@@ -6,7 +6,7 @@ import java.util.Arrays;
 import java.util.List;
 
 import lcsb.mapviewer.common.XmlParser;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Service;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -62,7 +62,7 @@ public class HgncAnnotator extends ElementAnnotator implements IExternalService
   /**
    * Standard class logger.
    */
-  private final Logger logger = Logger.getLogger(HgncAnnotator.class);
+  private final Logger logger = LogManager.getLogger(HgncAnnotator.class);
 
   @Override
   public String getCommonName() {
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/KeggAnnotator.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/KeggAnnotator.java
index eba58560fcd51110c175a178e89c1848f1bfd6b3..f1c2e73927928f6b017092b19e9fd5279ea45886 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/KeggAnnotator.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/KeggAnnotator.java
@@ -9,7 +9,7 @@ import java.util.Set;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Service;
 
 import lcsb.mapviewer.annotation.cache.GeneralCacheInterface;
@@ -46,7 +46,7 @@ public class KeggAnnotator extends ElementAnnotator implements IExternalService
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(KeggAnnotator.class);
+  private static Logger logger = LogManager.getLogger(KeggAnnotator.class);
 
   /**
    * Pattern used for finding PUBMED IDs in KEGG page.
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/PdbAnnotator.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/PdbAnnotator.java
index 440815a66c28bdca727a82acf8a45dbb93d4bb8c..65b1a8a5ba0ee923f7e5ed2cf165e7c9454e006e 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/PdbAnnotator.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/PdbAnnotator.java
@@ -9,7 +9,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -49,7 +49,7 @@ public class PdbAnnotator extends ElementAnnotator implements IExternalService {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(PdbAnnotator.class);
+  private static Logger logger = LogManager.getLogger(PdbAnnotator.class);
 
   /**
    * Default constructor.
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/ReconAnnotator.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/ReconAnnotator.java
index 018ffd8d742b500173be4e6872b62f368ae33cea..4bd99f0f0525e6a80b0e37c4fc7d78cc92f87349 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/ReconAnnotator.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/ReconAnnotator.java
@@ -6,7 +6,7 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Map.Entry;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Service;
 
 import com.google.gson.JsonArray;
@@ -19,7 +19,8 @@ import lcsb.mapviewer.annotation.cache.WebPageDownloader;
 import lcsb.mapviewer.annotation.services.ExternalServiceStatus;
 import lcsb.mapviewer.annotation.services.ExternalServiceStatusType;
 import lcsb.mapviewer.annotation.services.IExternalService;
-import lcsb.mapviewer.common.EventStorageLoggerAppender;
+
+import lcsb.mapviewer.common.MinervaLoggerAppender;
 import lcsb.mapviewer.common.exception.NotImplementedException;
 import lcsb.mapviewer.model.map.MiriamData;
 import lcsb.mapviewer.model.map.MiriamType;
@@ -53,7 +54,7 @@ public class ReconAnnotator extends ElementAnnotator implements IExternalService
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(ReconAnnotator.class);
+  private static Logger logger = LogManager.getLogger(ReconAnnotator.class);
 
   /**
    * Default constructor.
@@ -68,8 +69,7 @@ public class ReconAnnotator extends ElementAnnotator implements IExternalService
 
     GeneralCacheInterface cacheCopy = getCache();
     this.setCache(null);
-    EventStorageLoggerAppender appender = new EventStorageLoggerAppender();
-    Logger.getRootLogger().addAppender(appender);
+    MinervaLoggerAppender appender = MinervaLoggerAppender.createAppender();
     try {
       SimpleMolecule smallMoleculeAlias = new SimpleMolecule("some_id");
       smallMoleculeAlias.setName("h2o");
@@ -84,7 +84,7 @@ public class ReconAnnotator extends ElementAnnotator implements IExternalService
       logger.error(status.getName() + " is down", e);
       status.setStatus(ExternalServiceStatusType.DOWN);
     }
-    Logger.getRootLogger().removeAppender(appender);
+    MinervaLoggerAppender.unregisterLogEventStorage(appender);
     this.setCache(cacheCopy);
     return status;
   }
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/StitchAnnotator.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/StitchAnnotator.java
index 1d47f2df77ae5fa164da1e38f10f99e3d23a3def..553b202ce2467164721154155baf5c10a1d57b6c 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/StitchAnnotator.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/StitchAnnotator.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.annotation.services.annotators;
 import java.util.Arrays;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Service;
 
 import lcsb.mapviewer.annotation.cache.WebPageDownloader;
@@ -31,7 +31,7 @@ public class StitchAnnotator extends ElementAnnotator implements IExternalServic
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(StitchAnnotator.class);
+  private static Logger logger = LogManager.getLogger(StitchAnnotator.class);
 
   /**
    * Service used for annotation of entities using {@link MiriamType#STITCH
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/TairAnnotator.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/TairAnnotator.java
index 44b767900d96ddb0420043ef668708ff6906b4c2..3bcaeca897bc38c42d20ecb6b427a2c06dda8c65 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/TairAnnotator.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/TairAnnotator.java
@@ -6,7 +6,7 @@ import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Service;
 
 import lcsb.mapviewer.annotation.cache.GeneralCacheInterface;
@@ -38,7 +38,7 @@ public class TairAnnotator extends ElementAnnotator implements IExternalService
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(TairAnnotator.class);
+  private static Logger logger = LogManager.getLogger(TairAnnotator.class);
 
   /**
    * Default constructor.
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/UniprotAnnotator.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/UniprotAnnotator.java
index 6a593f1083b84e6f4cda9ca80f4a2aa3f15ce0af..f44e4029821ee5c146f6ff6548c581545c10f27c 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/UniprotAnnotator.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/UniprotAnnotator.java
@@ -9,7 +9,7 @@ import java.util.Set;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Service;
 
 import lcsb.mapviewer.annotation.cache.GeneralCacheInterface;
@@ -42,7 +42,7 @@ public class UniprotAnnotator extends ElementAnnotator implements IExternalServi
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(UniprotAnnotator.class);
+  private static Logger logger = LogManager.getLogger(UniprotAnnotator.class);
 
   /**
    * Pattern used for finding hgnc symbol from uniprot info page .
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/genome/AbstractReferenceGenomeConnector.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/genome/AbstractReferenceGenomeConnector.java
index 2a39d1aaa82d7c747f37b9da7965e0623e19a6bd..f46251b46df3168bb84c925fd56254601a1c0c28 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/genome/AbstractReferenceGenomeConnector.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/genome/AbstractReferenceGenomeConnector.java
@@ -10,7 +10,7 @@ import java.util.concurrent.Future;
 import java.util.concurrent.ScheduledThreadPoolExecutor;
 import java.util.concurrent.ThreadFactory;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import lcsb.mapviewer.annotation.cache.BigFileCache;
@@ -35,7 +35,7 @@ public abstract class AbstractReferenceGenomeConnector extends CachableInterface
 	/**
 	 * Default class logger.
 	 */
-	private Logger												logger = Logger.getLogger(AbstractReferenceGenomeConnector.class);
+	private Logger												logger = LogManager.getLogger(AbstractReferenceGenomeConnector.class);
 
 	/**
 	 * Utils that help to manage the sessions in custom multithreaded
diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/genome/UcscReferenceGenomeConnector.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/genome/UcscReferenceGenomeConnector.java
index a6caa1fcd55dad6b5988901dab7909ec5d5d7003..e58e376800c103f4f2eb9d2b23c2bdaa17d7c695 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/genome/UcscReferenceGenomeConnector.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/genome/UcscReferenceGenomeConnector.java
@@ -17,7 +17,7 @@ import org.apache.commons.net.ftp.FTP;
 import org.apache.commons.net.ftp.FTPClient;
 import org.apache.commons.net.ftp.FTPFile;
 import org.apache.commons.net.ftp.FTPReply;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import lcsb.mapviewer.annotation.cache.SourceNotAvailable;
@@ -58,7 +58,7 @@ public class UcscReferenceGenomeConnector extends AbstractReferenceGenomeConnect
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(UcscReferenceGenomeConnector.class);
+  private Logger logger = LogManager.getLogger(UcscReferenceGenomeConnector.class);
 
   /**
    * Regex pattern that helps to find out organism names in source file.
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/AnnotationTestFunctions.java b/annotation/src/test/java/lcsb/mapviewer/annotation/AnnotationTestFunctions.java
index 096363ac2973529f56abd383296014725fbb3eef..f5e381170ab4b2be845a00772d0e5597d56b427c 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/AnnotationTestFunctions.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/AnnotationTestFunctions.java
@@ -28,8 +28,9 @@ import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 
-import org.apache.log4j.Logger;
-import org.apache.log4j.spi.LoggingEvent;
+import org.apache.logging.log4j.*;
+import org.apache.logging.log4j.core.LogEvent;
+
 import org.junit.After;
 import org.junit.Before;
 import org.junit.runner.RunWith;
@@ -45,7 +46,8 @@ import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 
 import lcsb.mapviewer.annotation.cache.PermanentDatabaseLevelCacheInterface;
-import lcsb.mapviewer.common.EventStorageLoggerAppender;
+
+import lcsb.mapviewer.common.MinervaLoggerAppender;
 import lcsb.mapviewer.common.exception.InvalidXmlSchemaException;
 import lcsb.mapviewer.converter.ConverterParams;
 import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser;
@@ -67,31 +69,30 @@ public abstract class AnnotationTestFunctions extends AbstractTransactionalJUnit
   @Autowired
   protected DbUtils dbUtils;
 
-  private Logger logger = Logger.getLogger(AnnotationTestFunctions.class);
+  private Logger logger = LogManager.getLogger(AnnotationTestFunctions.class);
 
-  private EventStorageLoggerAppender appender;
+  private MinervaLoggerAppender appender;
 
   @Before
   public final void _setUp() throws Exception {
-    Logger.getRootLogger().removeAppender(appender);
-    appender = new EventStorageLoggerAppender(false);
-    Logger.getRootLogger().addAppender(appender);
+    MinervaLoggerAppender.unregisterLogEventStorage(appender);
+    appender = MinervaLoggerAppender.createAppender(false);
   }
 
   @After
   public final void _tearDown() throws Exception {
-    Logger.getRootLogger().removeAppender(appender);
+    MinervaLoggerAppender.unregisterLogEventStorage(appender);
   }
 
-  protected List<LoggingEvent> getWarnings() {
+  protected List<LogEvent> getWarnings() {
     return appender.getWarnings();
   }
 
-  protected List<LoggingEvent> getErrors() {
+  protected List<LogEvent> getErrors() {
     return appender.getErrors();
   }
 
-  protected List<LoggingEvent> getFatals() {
+  protected List<LogEvent> getFatals() {
     return appender.getFatals();
   }
 
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/cache/ApplicationLevelCacheTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/cache/ApplicationLevelCacheTest.java
index 2a41636316d0f4cd8023baaf247d2a54e6912699..6b47b3b017db97ef481d18a19ecaca03a55c887d 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/cache/ApplicationLevelCacheTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/cache/ApplicationLevelCacheTest.java
@@ -5,7 +5,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -18,7 +18,7 @@ import lcsb.mapviewer.model.cache.CacheType;
 
 public class ApplicationLevelCacheTest extends AnnotationTestFunctions {
 
-	Logger	logger = Logger.getLogger(ApplicationLevelCacheTest.class);
+	Logger	logger = LogManager.getLogger(ApplicationLevelCacheTest.class);
 
 	boolean	status;
 
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/cache/BigFileCacheTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/cache/BigFileCacheTest.java
index 9f189ac6b9d931ae718fbe15a1b49dccef594e6c..43b78c5c54b9e65e5024ba4868f1f337cdfe1771 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/cache/BigFileCacheTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/cache/BigFileCacheTest.java
@@ -22,7 +22,7 @@ import java.util.concurrent.ThreadFactory;
 import org.apache.commons.net.ftp.FTPClient;
 import org.apache.commons.net.ftp.FTPFile;
 import org.apache.commons.net.ftp.FTPReply;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -41,7 +41,7 @@ import lcsb.mapviewer.persist.dao.cache.BigFileEntryDao;
 
 public class BigFileCacheTest extends AnnotationTestFunctions {
 
-  Logger logger = Logger.getLogger(BigFileCacheTest.class);
+  Logger logger = LogManager.getLogger(BigFileCacheTest.class);
 
   String ftpUrl = "ftp://ftp.informatik.rwth-aachen.de/README";
   String ftpUrlPartContent = "Welcome";
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/cache/CachableInterfaceTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/cache/CachableInterfaceTest.java
index b8f7bfebfd0e92fc0d573e70256a719d686adc40..16ae5883a8ff2e5fe3cb2c28391a0851864713c0 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/cache/CachableInterfaceTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/cache/CachableInterfaceTest.java
@@ -4,7 +4,7 @@ import static org.junit.Assert.*;
 import static org.mockito.Matchers.anyString;
 import static org.mockito.Mockito.when;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -17,7 +17,7 @@ import lcsb.mapviewer.persist.dao.cache.CacheTypeDao;
 
 
 public class CachableInterfaceTest extends AnnotationTestFunctions {
-	Logger logger = Logger.getLogger(CachableInterfaceTest.class);
+	Logger logger = LogManager.getLogger(CachableInterfaceTest.class);
 
 	@Before
 	public void setUp() throws Exception {
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/cache/GeneralCacheTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/cache/GeneralCacheTest.java
index 3a790cba661bf4e440eba4a6d4fa6008b8c6502a..6f758e78328c3e900221333418c6a1c37925a2d6 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/cache/GeneralCacheTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/cache/GeneralCacheTest.java
@@ -5,7 +5,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -17,7 +17,7 @@ import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.model.cache.CacheType;
 
 public class GeneralCacheTest extends AnnotationTestFunctions {
-	Logger															 logger	= Logger.getLogger(GeneralCacheTest.class);
+	Logger															 logger	= LogManager.getLogger(GeneralCacheTest.class);
 
 	GeneralCache												 cache	= new GeneralCache(null);
 
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/cache/GeneralCacheWithExclusionTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/cache/GeneralCacheWithExclusionTest.java
index 4d3164868eeb8739aca5f6c4a35ab74782ffd634..b728f586286ee7277a2294b0cdcc67b6fe800e25 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/cache/GeneralCacheWithExclusionTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/cache/GeneralCacheWithExclusionTest.java
@@ -5,7 +5,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -16,7 +16,7 @@ import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.model.cache.CacheType;
 
 public class GeneralCacheWithExclusionTest extends AnnotationTestFunctions {
-	Logger logger = Logger.getLogger(GeneralCacheWithExclusionTest.class);
+	Logger logger = LogManager.getLogger(GeneralCacheWithExclusionTest.class);
 
 	@AfterClass
 	public static void tearDownAfterClass() throws Exception {
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/cache/PermanentDatabaseLevelCacheTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/cache/PermanentDatabaseLevelCacheTest.java
index 1b8b5b7fefd6f3e33fd874475d9f675862ebaee6..1daf157577189f16914a4080c98b62b003f40a58 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/cache/PermanentDatabaseLevelCacheTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/cache/PermanentDatabaseLevelCacheTest.java
@@ -11,7 +11,7 @@ import static org.mockito.Mockito.when;
 import java.util.Calendar;
 
 import org.apache.commons.lang3.mutable.MutableBoolean;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -33,7 +33,7 @@ import lcsb.mapviewer.persist.dao.cache.CacheQueryDao;
 @Rollback(true)
 public class PermanentDatabaseLevelCacheTest extends AnnotationTestFunctions {
 
-  Logger logger = Logger.getLogger(PermanentDatabaseLevelCacheTest.class);
+  Logger logger = LogManager.getLogger(PermanentDatabaseLevelCacheTest.class);
 
   @Autowired
   private PermanentDatabaseLevelCacheInterface permanentDatabaseLevelCache;
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/services/ChEMBLParserTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/services/ChEMBLParserTest.java
index 0b4f0d4dd5f38e0d2dae09e2d16cd72dcf0f2e24..ffa83998cb4de61e0b3cc4ace6ffd18c0fe7b4c1 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/services/ChEMBLParserTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/services/ChEMBLParserTest.java
@@ -16,7 +16,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.mockito.Mockito;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -41,7 +41,7 @@ import lcsb.mapviewer.model.map.MiriamRelationType;
 import lcsb.mapviewer.model.map.MiriamType;
 
 public class ChEMBLParserTest extends AnnotationTestFunctions {
-  Logger logger = Logger.getLogger(ChEMBLParserTest.class);
+  Logger logger = LogManager.getLogger(ChEMBLParserTest.class);
 
   @Autowired
   private GeneralCacheInterface cache;
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/services/ChemicalParserTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/services/ChemicalParserTest.java
index c718c9afebb7f805e564027ba56044e20b3d284c..8ff192194e383543b9726945d2c632f59dbd1d79 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/services/ChemicalParserTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/services/ChemicalParserTest.java
@@ -16,7 +16,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.commons.lang3.math.NumberUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.mockito.Mockito;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -38,7 +38,7 @@ import lcsb.mapviewer.model.map.MiriamType;
 import lcsb.mapviewer.model.map.model.Model;
 
 public class ChemicalParserTest extends AnnotationTestFunctions {
-  Logger logger = Logger.getLogger(ChemicalParserTest.class);
+  Logger logger = LogManager.getLogger(ChemicalParserTest.class);
 
   final MiriamData parkinsonDiseaseId = new MiriamData(MiriamType.MESH_2012, "D010300");
   final MiriamData dystoniaDisease = new MiriamData(MiriamType.MESH_2012, "C538007");
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/services/DrugAnnotationTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/services/DrugAnnotationTest.java
index 2ac8e9c9c758368f536f53cfc0b67d274268baa6..5bf0d396920536e825b6e004a9c7d9e979b3efda 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/services/DrugAnnotationTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/services/DrugAnnotationTest.java
@@ -5,7 +5,7 @@ import static org.junit.Assert.assertEquals;
 import java.util.Collection;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -16,7 +16,7 @@ import lcsb.mapviewer.annotation.data.Drug;
 import lcsb.mapviewer.model.map.MiriamData;
 
 public class DrugAnnotationTest extends AnnotationTestFunctions {
-  Logger logger = Logger.getLogger(DrugAnnotationTest.class);
+  Logger logger = LogManager.getLogger(DrugAnnotationTest.class);
 
   @Autowired
   private DrugbankHTMLParser drugBankHTMLParser;
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/services/DrugbankHTMLParserTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/services/DrugbankHTMLParserTest.java
index 9d8c8164b260e3504bbc90cfc481f22ae6d81647..dd305c61d4964d219c9828741625bba9e067fbb1 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/services/DrugbankHTMLParserTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/services/DrugbankHTMLParserTest.java
@@ -14,7 +14,7 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.mockito.Mockito;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,7 +34,7 @@ import lcsb.mapviewer.model.map.MiriamType;
 import lcsb.mapviewer.model.map.model.Model;
 
 public class DrugbankHTMLParserTest extends AnnotationTestFunctions {
-  Logger logger = Logger.getLogger(DrugbankHTMLParserTest.class);
+  Logger logger = LogManager.getLogger(DrugbankHTMLParserTest.class);
 
   @Autowired
   private DrugbankHTMLParser drugBankHTMLParser;
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/services/MeSHParserTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/services/MeSHParserTest.java
index 5e8cc79523006779441089943a070823c132e872..a892afafd5330f11fa1f1a9a17006f22fc90a610 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/services/MeSHParserTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/services/MeSHParserTest.java
@@ -14,7 +14,7 @@ import java.io.IOException;
 import java.util.List;
 
 import org.apache.http.HttpStatus;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.mockito.Mockito;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,7 +31,7 @@ import lcsb.mapviewer.model.map.MiriamData;
 import lcsb.mapviewer.model.map.MiriamType;
 
 public class MeSHParserTest extends AnnotationTestFunctions {
-  Logger logger = Logger.getLogger(MeSHParserTest.class);
+  Logger logger = LogManager.getLogger(MeSHParserTest.class);
 
   @Autowired
   MeSHParser meshParser;
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/services/MiRNAParserTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/services/MiRNAParserTest.java
index 8132a0fd81c9c0322921e36f3b82e1cf4f84950e..00581cccb14617347aecb312314149c4a3f4cbf9 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/services/MiRNAParserTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/services/MiRNAParserTest.java
@@ -14,7 +14,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -34,7 +34,7 @@ import lcsb.mapviewer.model.map.MiriamType;
 import lcsb.mapviewer.model.map.model.Model;
 
 public class MiRNAParserTest extends AnnotationTestFunctions {
-  Logger logger = Logger.getLogger(MiRNAParserTest.class);
+  Logger logger = LogManager.getLogger(MiRNAParserTest.class);
 
   @Autowired
   MiRNAParser miRNAParser;
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/services/MiriamConnectorTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/services/MiriamConnectorTest.java
index 03f636d2a4bbf5bc1205fb37c12b560de1d30ffc..0559af7dbff02e14b99fbe6b1461070113e2065a 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/services/MiriamConnectorTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/services/MiriamConnectorTest.java
@@ -6,14 +6,14 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
-import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.nullable;
 import static org.mockito.Mockito.when;
 
 import java.io.IOException;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.hibernate.AnnotationException;
 import org.junit.After;
 import org.junit.Before;
@@ -26,14 +26,12 @@ import lcsb.mapviewer.annotation.cache.GeneralCacheInterface;
 import lcsb.mapviewer.annotation.cache.SourceNotAvailable;
 import lcsb.mapviewer.annotation.cache.WebPageDownloader;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
-import lcsb.mapviewer.common.exception.InvalidStateException;
 import lcsb.mapviewer.model.map.MiriamData;
 import lcsb.mapviewer.model.map.MiriamRelationType;
 import lcsb.mapviewer.model.map.MiriamType;
-import uk.ac.ebi.miriam.lib.MiriamLink;
 
 public class MiriamConnectorTest extends AnnotationTestFunctions {
-  Logger logger = Logger.getLogger(MiriamConnectorTest.class);
+  Logger logger = LogManager.getLogger(MiriamConnectorTest.class);
 
   @Autowired
   MiriamConnector miriamConnector;
@@ -328,37 +326,4 @@ public class MiriamConnectorTest extends AnnotationTestFunctions {
       throw e;
     }
   }
-
-  @Test
-  public void testSimulateDownStatus() throws Exception {
-    MiriamLink link = miriamConnector.getLink();
-    try {
-      MiriamLink mockDownloader = Mockito.mock(MiriamLink.class);
-      when(mockDownloader.getLocations(any())).thenThrow(new InvalidStateException());
-      miriamConnector.setLink(mockDownloader);
-      assertEquals(ExternalServiceStatusType.DOWN, miriamConnector.getServiceStatus().getStatus());
-    } catch (Exception e) {
-      e.printStackTrace();
-      throw e;
-    } finally {
-      miriamConnector.setLink(link);
-    }
-  }
-
-  @Test
-  public void testSimulateDownStatus2() throws Exception {
-    MiriamLink link = miriamConnector.getLink();
-    try {
-      MiriamLink mockDownloader = Mockito.mock(MiriamLink.class);
-      when(mockDownloader.getLocations(any())).thenReturn(null);
-      miriamConnector.setLink(mockDownloader);
-      assertEquals(ExternalServiceStatusType.DOWN, miriamConnector.getServiceStatus().getStatus());
-    } catch (Exception e) {
-      e.printStackTrace();
-      throw e;
-    } finally {
-      miriamConnector.setLink(link);
-    }
-  }
-
 }
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/services/ModelAnnotatorTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/services/ModelAnnotatorTest.java
index 104704028d9ccb6c6f2f7b1eed30a3542e15d8cf..062823a786d33d99ee39ca8ea907e6387c9e953a 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/services/ModelAnnotatorTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/services/ModelAnnotatorTest.java
@@ -15,7 +15,7 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.commons.lang3.mutable.MutableDouble;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -43,7 +43,7 @@ import lcsb.mapviewer.model.user.UserClassAnnotators;
 import lcsb.mapviewer.persist.dao.map.ModelDao;
 
 public class ModelAnnotatorTest extends AnnotationTestFunctions {
-  Logger logger = Logger.getLogger(ModelAnnotatorTest.class);
+  Logger logger = LogManager.getLogger(ModelAnnotatorTest.class);
   IProgressUpdater updater = new IProgressUpdater() {
     @Override
     public void setProgress(double progress) {
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/services/PubmedParserTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/services/PubmedParserTest.java
index 5d2f97a890d5fae1973e481717c6c1f0bc1a2946..7958b8234a85e7ba1a8c9e471c9e8e3920d58d2c 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/services/PubmedParserTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/services/PubmedParserTest.java
@@ -14,7 +14,7 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -32,7 +32,7 @@ import lcsb.mapviewer.common.Configuration;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 
 public class PubmedParserTest extends AnnotationTestFunctions {
-  Logger logger = Logger.getLogger(PubmedParserTest.class);
+  Logger logger = LogManager.getLogger(PubmedParserTest.class);
   private boolean status;
   private boolean status2;
 
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/services/TaxonomyBackendTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/services/TaxonomyBackendTest.java
index ec76ad233372c24de9240323f390340762b4da56..1f14b9a0be2b2ae8b003cc3d0c3db202819998ee 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/services/TaxonomyBackendTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/services/TaxonomyBackendTest.java
@@ -11,7 +11,7 @@ import static org.mockito.Mockito.when;
 
 import java.io.IOException;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.mockito.Mockito;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -25,7 +25,7 @@ import lcsb.mapviewer.model.map.MiriamData;
 import lcsb.mapviewer.model.map.MiriamType;
 
 public class TaxonomyBackendTest extends AnnotationTestFunctions {
-  Logger logger = Logger.getLogger(TaxonomyBackendTest.class);
+  Logger logger = LogManager.getLogger(TaxonomyBackendTest.class);
 
   @Autowired
   TaxonomyBackend taxonomyBackend;
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/BiocompendiumAnnotatorTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/BiocompendiumAnnotatorTest.java
index f4c2219a59ad132fc6afdf0c0cb34887531c6079..490032e67e147414ac2d8aa94b63423c8a7409f3 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/BiocompendiumAnnotatorTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/BiocompendiumAnnotatorTest.java
@@ -13,7 +13,7 @@ import java.io.FileReader;
 import java.util.ArrayList;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
@@ -31,7 +31,7 @@ import lcsb.mapviewer.model.map.MiriamData;
 import lcsb.mapviewer.model.map.MiriamType;
 
 public class BiocompendiumAnnotatorTest extends AnnotationTestFunctions {
-  Logger logger = Logger.getLogger(BiocompendiumAnnotatorTest.class);
+  Logger logger = LogManager.getLogger(BiocompendiumAnnotatorTest.class);
 
   MiriamData camk4 = new MiriamData(MiriamType.HGNC_SYMBOL, "CAMK4");
   MiriamData slc25a27 = new MiriamData(MiriamType.HGNC_SYMBOL, "SLC25A27");
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/BrendaAnnotatorTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/BrendaAnnotatorTest.java
index 60c55a1e9fde82e6ffe095c1120534ca8874274f..a2c16aa7eea33522a104a6a392b89f34859c8cec 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/BrendaAnnotatorTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/BrendaAnnotatorTest.java
@@ -8,7 +8,7 @@ import static org.mockito.Mockito.when;
 
 import java.io.IOException;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
@@ -25,7 +25,7 @@ import lcsb.mapviewer.model.map.species.GenericProtein;
 import lcsb.mapviewer.model.map.species.Species;
 
 public class BrendaAnnotatorTest extends AnnotationTestFunctions {
-  Logger logger = Logger.getLogger(BrendaAnnotatorTest.class);
+  Logger logger = LogManager.getLogger(BrendaAnnotatorTest.class);
 
   @Autowired
   BrendaAnnotator brendaAnnotator;
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/ChebiAnnotatorTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/ChebiAnnotatorTest.java
index 1627187e3ebdb489747369bc60ac1ce964513a7a..831d19ba7fa346797cb0a047525dbe2ed7921810 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/ChebiAnnotatorTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/ChebiAnnotatorTest.java
@@ -13,7 +13,7 @@ import static org.mockito.Mockito.when;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -41,7 +41,7 @@ import uk.ac.ebi.chebi.webapps.chebiWS.model.OntologyDataItem;
 import uk.ac.ebi.chebi.webapps.chebiWS.model.SearchCategory;
 
 public class ChebiAnnotatorTest extends AnnotationTestFunctions {
-  static Logger logger = Logger.getLogger(ChebiAnnotatorTest.class);
+  static Logger logger = LogManager.getLogger(ChebiAnnotatorTest.class);
 
   @Autowired
   ChebiAnnotator backend;
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/ElementAnnotatorImplementationsTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/ElementAnnotatorImplementationsTest.java
index f9aaa52c5956c7b97e21b53b7c43b74d6d228dc9..9fc4231272210776db484d6ec9436a851315692f 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/ElementAnnotatorImplementationsTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/ElementAnnotatorImplementationsTest.java
@@ -8,7 +8,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -38,7 +38,7 @@ import lcsb.mapviewer.persist.DbUtils;
 @RunWith(Parameterized.class)
 public class ElementAnnotatorImplementationsTest extends AnnotationTestFunctions {
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(ElementAnnotatorImplementationsTest.class);
+  private static Logger logger = LogManager.getLogger(ElementAnnotatorImplementationsTest.class);
 
   @Parameter
   public String testName;
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/GoAnnotatorTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/GoAnnotatorTest.java
index 08a2159ab6e3c32d98ef9e502016706149f3c67f..2cfc526f913e11bdbd0814a23c4825b08d783b84 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/GoAnnotatorTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/GoAnnotatorTest.java
@@ -11,7 +11,7 @@ import static org.mockito.Mockito.when;
 
 import java.io.IOException;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -32,7 +32,7 @@ import lcsb.mapviewer.model.map.MiriamType;
 import lcsb.mapviewer.model.map.compartment.Compartment;
 
 public class GoAnnotatorTest extends AnnotationTestFunctions {
-  Logger logger = Logger.getLogger(GoAnnotatorTest.class);
+  Logger logger = LogManager.getLogger(GoAnnotatorTest.class);
 
   @Autowired
   GoAnnotator goAnnotator;
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/HgncAnnotatorTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/HgncAnnotatorTest.java
index 4b33b969386c94bfdd5744486458bb2ad65d23de..3d7f21dc102f0be169aea15b5c2a57425980a5a0 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/HgncAnnotatorTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/HgncAnnotatorTest.java
@@ -13,7 +13,7 @@ import static org.mockito.Mockito.when;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -32,7 +32,7 @@ import lcsb.mapviewer.model.map.species.Species;
 
 public class HgncAnnotatorTest extends AnnotationTestFunctions {
 
-  final Logger logger = Logger.getLogger(HgncAnnotatorTest.class);
+  final Logger logger = LogManager.getLogger(HgncAnnotatorTest.class);
 
   @Autowired
   private HgncAnnotator hgncAnnotator;
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/ReconAnnotatorTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/ReconAnnotatorTest.java
index a16ebc551fd01655d4e6345dd55a09762fc5592d..a6a57dc8b9f65cd166803d3cbad2b6a8a490c88a 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/ReconAnnotatorTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/services/annotators/ReconAnnotatorTest.java
@@ -11,7 +11,7 @@ import static org.mockito.Mockito.when;
 
 import java.io.IOException;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -29,7 +29,7 @@ import lcsb.mapviewer.model.map.species.SimpleMolecule;
 import lcsb.mapviewer.model.map.species.Species;
 
 public class ReconAnnotatorTest extends AnnotationTestFunctions {
-  Logger logger = Logger.getLogger(ReconAnnotatorTest.class);
+  Logger logger = LogManager.getLogger(ReconAnnotatorTest.class);
   @Autowired
   ReconAnnotator reconAnnotator;
 
@@ -85,7 +85,7 @@ public class ReconAnnotatorTest extends AnnotationTestFunctions {
 
       reconAnnotator.annotateElement(ion);
       assertEquals(1, getWarnings().size());
-      assertTrue(getWarnings().get(0).getMessage().toString().contains("No recon annotations"));
+      assertTrue(getWarnings().get(0).getMessage().getFormattedMessage().contains("No recon annotations"));
     } catch (Exception e) {
       e.printStackTrace();
       throw e;
@@ -162,7 +162,7 @@ public class ReconAnnotatorTest extends AnnotationTestFunctions {
 
       tweakedReconAnnotator.annotateElement(obj);
       assertTrue(getWarnings().size() > 0);
-      assertTrue(getWarnings().get(0).getMessage().toString().contains("Unknown class type"));
+      assertTrue(getWarnings().get(0).getMessage().getFormattedMessage().contains("Unknown class type"));
     } catch (Exception e) {
       e.printStackTrace();
       throw e;
diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/services/genome/UcscReferenceGenomeConnectorTest.java b/annotation/src/test/java/lcsb/mapviewer/annotation/services/genome/UcscReferenceGenomeConnectorTest.java
index 3566680735812abfa8b0198678ab69dedba47d4f..9fa49bc988559752828a7d38351704ac5abf1835 100644
--- a/annotation/src/test/java/lcsb/mapviewer/annotation/services/genome/UcscReferenceGenomeConnectorTest.java
+++ b/annotation/src/test/java/lcsb/mapviewer/annotation/services/genome/UcscReferenceGenomeConnectorTest.java
@@ -22,7 +22,7 @@ import java.util.concurrent.Future;
 import org.apache.commons.net.ftp.FTPClient;
 import org.apache.commons.net.ftp.FTPFile;
 import org.apache.commons.net.ftp.FTPReply;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -50,7 +50,7 @@ import lcsb.mapviewer.persist.dao.map.layout.ReferenceGenomeDao;
 
 public class UcscReferenceGenomeConnectorTest extends AnnotationTestFunctions {
 
-  Logger logger = Logger.getLogger(UcscReferenceGenomeConnectorTest.class);
+  Logger logger = LogManager.getLogger(UcscReferenceGenomeConnectorTest.class);
 
   @Autowired
   UcscReferenceGenomeConnector connector;
diff --git a/annotation/src/test/resources/log4j.properties b/annotation/src/test/resources/log4j.properties
deleted file mode 100644
index e23927cb8932324e1cb8b40fe1be2b99fb755c69..0000000000000000000000000000000000000000
--- a/annotation/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-#Set root logger 's level and its appender to an appender called CONSOLE which is defined below.
-log4j.rootLogger=info, CONSOLE
-
-#Set the behavior of the CONSOLE appender 
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-#log4j.appender.CONSOLE.layout.ConversionPattern=%m%n
-
-
-#Set the behavior of the FILE appender 
-log4j.appender.R=org.apache.log4j.FileAppender
-log4j.appender.R.File=${catalina.home}/logs/MapViewer.log
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-
-#Silence miriam debug logs 
-log4j.logger.uk.ac.ebi.miriam.lib=warn
-
-log4j.logger.org.springframework=warn
-log4j.logger.org.hibernate=warn
-log4j.logger.lcsb=debug
-log4j.logger.lcsb.mapviewer.persist.DbUtils=info
-log4j.logger.lcsb.mapviewer.annotation.cache.PermanentDatabaseLevelCache=info
-log4j.logger.lcsb.mapviewer.annotation.cache.CachableInterface=info
\ No newline at end of file
diff --git a/annotation/src/test/resources/log4j2.properties b/annotation/src/test/resources/log4j2.properties
new file mode 100644
index 0000000000000000000000000000000000000000..b5eaa32682d177bf266eb6ed4831b4e8f4b9135d
--- /dev/null
+++ b/annotation/src/test/resources/log4j2.properties
@@ -0,0 +1,25 @@
+rootLogger.level = INFO
+appenders = console
+
+appender.console.type = Console
+appender.console.name = STDOUT
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %d %5p [%t] (%F:%L) - %m%n
+
+rootLogger.appenderRefs = console
+
+rootLogger.appenderRef.console.ref = STDOUT
+
+logger.minerva.name = lcsb
+logger.minerva.level = debug
+logger.minerva-persist.name = lcsb.mapviewer.persist.DbUtils
+logger.minerva-persist.level = info
+logger.minerva-cache.name = lcsb.mapviewer.annotation.cache
+logger.minerva-cache.level = info
+
+
+logger.springframework.name = org.springframework
+logger.springframework.level = warn
+
+logger.hibernate.name = org.hibernate
+logger.hibernate.level = warn
diff --git a/commons/pom.xml b/commons/pom.xml
index ab50229ee2536ca855c84e9e6514bd5054577f98..4916777ae0cb5c9a2712f151bf655023711c2495 100644
--- a/commons/pom.xml
+++ b/commons/pom.xml
@@ -13,13 +13,6 @@
 
 	<dependencies>
 
-		<!-- Log4J version 1-->
-		<dependency>
-			<groupId>log4j</groupId>
-			<artifactId>log4j</artifactId>
-			<version>${log4j.version}</version>
-		</dependency>
-
 		<!-- Log4J2-->
 		<dependency>
 			<groupId>org.apache.logging.log4j</groupId>
@@ -31,6 +24,7 @@
 			<artifactId>log4j-core</artifactId>
 			<version>${log4j2.version}</version>
 		</dependency>
+		
 		<dependency>
 			<groupId>commons-io</groupId>
 			<artifactId>commons-io</artifactId>
diff --git a/commons/src/main/java/lcsb/mapviewer/common/Comparator.java b/commons/src/main/java/lcsb/mapviewer/common/Comparator.java
index c7b192b1f4a4f373c278685b5d560267b0fa4eab..9813b87e5d7b005d3aa55f8295605b9dcab5c542 100644
--- a/commons/src/main/java/lcsb/mapviewer/common/Comparator.java
+++ b/commons/src/main/java/lcsb/mapviewer/common/Comparator.java
@@ -4,7 +4,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 
diff --git a/commons/src/main/java/lcsb/mapviewer/common/Configuration.java b/commons/src/main/java/lcsb/mapviewer/common/Configuration.java
index b9c9da41d0a788aa4dcddf7c1b1fadf06c063a2e..42aa17493ad2fb2f84be1f83085d5bd85a5ed592 100644
--- a/commons/src/main/java/lcsb/mapviewer/common/Configuration.java
+++ b/commons/src/main/java/lcsb/mapviewer/common/Configuration.java
@@ -8,7 +8,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Basic configuration parameters of the system (these values cannot be modified
diff --git a/commons/src/main/java/lcsb/mapviewer/common/EventStorageLoggerAppender.java b/commons/src/main/java/lcsb/mapviewer/common/EventStorageLoggerAppender.java
deleted file mode 100644
index aa44753353cff6c5b67c98a0230117c5fa8556fd..0000000000000000000000000000000000000000
--- a/commons/src/main/java/lcsb/mapviewer/common/EventStorageLoggerAppender.java
+++ /dev/null
@@ -1,148 +0,0 @@
-package lcsb.mapviewer.common;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.log4j.Appender;
-import org.apache.log4j.AppenderSkeleton;
-import org.apache.log4j.Level;
-import org.apache.log4j.lf5.LogLevel;
-import org.apache.log4j.spi.LoggingEvent;
-
-/**
- * Custom log4j {@link Appender}. This class is used to store logs in the
- * memory. Such logs should be stored for short period of time. Only logs for
- * the {@link Thread} that created the object will be stored.
- * 
- * @author Piotr Gawron
- *
- */
-public class EventStorageLoggerAppender extends AppenderSkeleton {
-
-  /**
-   * List of {@link LogLevel#DEBUG} logs.
-   */
-  private List<LoggingEvent> debugEvents = new ArrayList<>();
-
-  /**
-   * List of {@link LogLevel#INFO} logs.
-   */
-  private List<LoggingEvent> infoEvents = new ArrayList<>();
-
-  /**
-   * List of {@link LogLevel#WARN} logs.
-   */
-  private List<LoggingEvent> warnEvents = new ArrayList<>();
-
-  /**
-   * List of {@link LogLevel#ERROR} logs.
-   */
-  private List<LoggingEvent> errorEvents = new ArrayList<>();
-
-  /**
-   * List of {@link LogLevel#FATAL} logs.
-   */
-  private List<LoggingEvent> fatalEvents = new ArrayList<>();
-
-  /**
-   * List of logs with unknown log level.
-   */
-  private List<LoggingEvent> otherEvents = new ArrayList<>();
-
-  /**
-   * Identifier of {@link Thread} that created this object.
-   */
-  private long threadId;
-
-  /**
-   * Flag that describe if we log only entries for current thread (
-   * <code>true</code>) or for all threads (<code>false</code>).
-   */
-  private boolean currentThreadLogOnly = true;
-
-  /**
-   * Default constructor.
-   */
-  public EventStorageLoggerAppender() {
-    this(true);
-  }
-
-  /**
-   * Default constructor.
-   * 
-   * @param currentThreadLogOnly
-   *          if <code>true</code> logs should be taken only from thread that
-   *          created object, if <code>false</code> all logs will be stored
-   */
-  public EventStorageLoggerAppender(boolean currentThreadLogOnly) {
-    this.threadId = Thread.currentThread().getId();
-    this.currentThreadLogOnly = currentThreadLogOnly;
-  }
-
-  @Override
-  protected void append(LoggingEvent event) {
-    // store information for all thread only if it is flagged by
-    // currentThreadLogOnly, if not only logs from current thread should be
-    // stored
-    if (!currentThreadLogOnly || threadId == Thread.currentThread().getId()) {
-      if (event.getLevel().equals(Level.DEBUG)) {
-        debugEvents.add(event);
-      } else if (event.getLevel().equals(Level.INFO)) {
-        infoEvents.add(event);
-      } else if (event.getLevel().equals(Level.WARN)) {
-        warnEvents.add(event);
-      } else if (event.getLevel().equals(Level.ERROR)) {
-        errorEvents.add(event);
-      } else if (event.getLevel().equals(Level.FATAL)) {
-        fatalEvents.add(event);
-      } else {
-        otherEvents.add(event);
-      }
-    }
-  }
-
-  @Override
-  public void close() {
-  }
-
-  @Override
-  public boolean requiresLayout() {
-    return false;
-  }
-
-  /**
-   * Returns list of warning logs.
-   * 
-   * @return list of warning logs
-   */
-  public List<LoggingEvent> getWarnings() {
-    return warnEvents;
-  }
-
-  /**
-   * Returns list of warning logs.
-   * 
-   * @return list of warning logs
-   */
-  public List<LoggingEvent> getInfos() {
-    return infoEvents;
-  }
-
-  /**
-   * Returns list of error logs.
-   * 
-   * @return list of error logs
-   */
-  public List<LoggingEvent> getErrors() {
-    return errorEvents;
-  }
-
-  /**
-   * Returns list of fatal logs.
-   * 
-   * @return list of fatal logs
-   */
-  public List<LoggingEvent> getFatals() {
-    return fatalEvents;
-  }
-}
\ No newline at end of file
diff --git a/commons/src/main/java/lcsb/mapviewer/common/MinervaLoggerAppender.java b/commons/src/main/java/lcsb/mapviewer/common/MinervaLoggerAppender.java
index bbe0a409b74c3e0a9d86ad48d496bb032da363f8..39151271ef360d3c7f1bfc6e3ae4f96632c3bcfe 100644
--- a/commons/src/main/java/lcsb/mapviewer/common/MinervaLoggerAppender.java
+++ b/commons/src/main/java/lcsb/mapviewer/common/MinervaLoggerAppender.java
@@ -4,7 +4,6 @@ import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.lf5.LogLevel;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.core.Filter;
 import org.apache.logging.log4j.core.Layout;
@@ -12,7 +11,9 @@ import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.appender.AbstractAppender;
 import org.apache.logging.log4j.core.config.Property;
+import org.apache.logging.log4j.core.impl.MutableLogEvent;
 import org.apache.logging.log4j.core.layout.PatternLayout;
+import org.hamcrest.core.IsInstanceOf;
 
 /**
  * Custom log4j {@link AbstractAppender}. This class is used to store logs in
@@ -138,23 +139,27 @@ public class MinervaLoggerAppender extends AbstractAppender {
   }
 
   @Override
-  public void append(LogEvent event) {
+  public void append(LogEvent logEvent) {
     // store information for all thread only if it is flagged by
     // currentThreadLogOnly, if not only logs from current thread should be
     // stored
     if (!currentThreadLogOnly || threadId == Thread.currentThread().getId()) {
-      if (event.getLevel().equals(Level.DEBUG)) {
-        debugEvents.add(event);
-      } else if (event.getLevel().equals(Level.INFO)) {
-        infoEvents.add(event);
-      } else if (event.getLevel().equals(Level.WARN)) {
-        warnEvents.add(event);
-      } else if (event.getLevel().equals(Level.ERROR)) {
-        errorEvents.add(event);
-      } else if (event.getLevel().equals(Level.FATAL)) {
-        fatalEvents.add(event);
+      LogEvent eventToBePersisted = logEvent;
+      if (logEvent instanceof MutableLogEvent) {
+        eventToBePersisted = ((MutableLogEvent) logEvent).createMemento();
+      }
+      if (eventToBePersisted.getLevel().equals(Level.DEBUG)) {
+        debugEvents.add(eventToBePersisted);
+      } else if (eventToBePersisted.getLevel().equals(Level.INFO)) {
+        infoEvents.add(eventToBePersisted);
+      } else if (eventToBePersisted.getLevel().equals(Level.WARN)) {
+        warnEvents.add(eventToBePersisted);
+      } else if (eventToBePersisted.getLevel().equals(Level.ERROR)) {
+        errorEvents.add(eventToBePersisted);
+      } else if (eventToBePersisted.getLevel().equals(Level.FATAL)) {
+        fatalEvents.add(eventToBePersisted);
       } else {
-        otherEvents.add(event);
+        otherEvents.add(eventToBePersisted);
       }
     }
   }
diff --git a/commons/src/main/java/lcsb/mapviewer/common/SystemClipboard.java b/commons/src/main/java/lcsb/mapviewer/common/SystemClipboard.java
index 0976a382a1e28928fb9ae7eca71736b81c84c891..bfb7431ef6f7a373e76c9657ecb0e31bd6404da2 100644
--- a/commons/src/main/java/lcsb/mapviewer/common/SystemClipboard.java
+++ b/commons/src/main/java/lcsb/mapviewer/common/SystemClipboard.java
@@ -8,7 +8,7 @@ import java.awt.datatransfer.StringSelection;
 import java.awt.datatransfer.Transferable;
 
 import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Class allowing access to system clipboard.
diff --git a/commons/src/main/java/lcsb/mapviewer/common/XmlParser.java b/commons/src/main/java/lcsb/mapviewer/common/XmlParser.java
index 9d597981152e7e0efc98106b0d08c3520f2b5e59..35e9b2821c86f4ddf29ee25f833bc10c7076b58d 100644
--- a/commons/src/main/java/lcsb/mapviewer/common/XmlParser.java
+++ b/commons/src/main/java/lcsb/mapviewer/common/XmlParser.java
@@ -29,7 +29,7 @@ import org.apache.commons.io.IOUtils;
 import org.apache.commons.io.output.ByteArrayOutputStream;
 import org.apache.commons.text.StringEscapeUtils;
 import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Document;
 import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
diff --git a/commons/src/main/java/lcsb/mapviewer/common/comparator/LineComparator.java b/commons/src/main/java/lcsb/mapviewer/common/comparator/LineComparator.java
index f747b5bc064d48aa61689e74c9d7c266dce741c3..97fffceab0391bbb01236aec5c2f991fd587a5c3 100644
--- a/commons/src/main/java/lcsb/mapviewer/common/comparator/LineComparator.java
+++ b/commons/src/main/java/lcsb/mapviewer/common/comparator/LineComparator.java
@@ -4,7 +4,7 @@ import java.awt.geom.Line2D;
 import java.util.Comparator;
 
 import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Configuration;
 
diff --git a/commons/src/main/java/lcsb/mapviewer/common/comparator/ListComparator.java b/commons/src/main/java/lcsb/mapviewer/common/comparator/ListComparator.java
index bded8af204b5cee366ae3414e79c6db493b0c850..485d1025ebe57a2ef29cd387182502f122973797 100644
--- a/commons/src/main/java/lcsb/mapviewer/common/comparator/ListComparator.java
+++ b/commons/src/main/java/lcsb/mapviewer/common/comparator/ListComparator.java
@@ -4,7 +4,7 @@ import java.util.Comparator;
 import java.util.List;
 
 import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 
 /**
diff --git a/commons/src/main/java/lcsb/mapviewer/common/comparator/SetComparator.java b/commons/src/main/java/lcsb/mapviewer/common/comparator/SetComparator.java
index 36465f5b78fbcf238515977fa23dfce3af0a0861..82db4d5ebd1a1d608b2c161134bef9cff175f987 100644
--- a/commons/src/main/java/lcsb/mapviewer/common/comparator/SetComparator.java
+++ b/commons/src/main/java/lcsb/mapviewer/common/comparator/SetComparator.java
@@ -4,7 +4,7 @@ import java.util.Comparator;
 import java.util.Set;
 
 import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 
 /**
diff --git a/commons/src/main/java/lcsb/mapviewer/common/comparator/StringComparator.java b/commons/src/main/java/lcsb/mapviewer/common/comparator/StringComparator.java
index a0d5f24480a93a222fe8f78d4b08c794de082241..900ebb7feac744e641a4f928e38eb233f61518a9 100644
--- a/commons/src/main/java/lcsb/mapviewer/common/comparator/StringComparator.java
+++ b/commons/src/main/java/lcsb/mapviewer/common/comparator/StringComparator.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.common.comparator;
 import java.util.Comparator;
 
 import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 
 /**
diff --git a/commons/src/main/java/lcsb/mapviewer/common/comparator/StringListComparator.java b/commons/src/main/java/lcsb/mapviewer/common/comparator/StringListComparator.java
index 64e715cff2e27035f9f9ca07ef552583ca8e895e..0d9eac4d5927f09b1cb6a0aae307ebfbf3dfefb4 100644
--- a/commons/src/main/java/lcsb/mapviewer/common/comparator/StringListComparator.java
+++ b/commons/src/main/java/lcsb/mapviewer/common/comparator/StringListComparator.java
@@ -4,7 +4,7 @@ import java.util.Comparator;
 import java.util.List;
 
 import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Comparator used for list of strings.
diff --git a/commons/src/main/java/lcsb/mapviewer/common/comparator/StringSetComparator.java b/commons/src/main/java/lcsb/mapviewer/common/comparator/StringSetComparator.java
index 7042047c65ad40baf3f10a248318ae12239d421d..adbcd10916928768799fb188dfa51571a25c069c 100644
--- a/commons/src/main/java/lcsb/mapviewer/common/comparator/StringSetComparator.java
+++ b/commons/src/main/java/lcsb/mapviewer/common/comparator/StringSetComparator.java
@@ -4,7 +4,7 @@ import java.util.Comparator;
 import java.util.Set;
 
 import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 
 /**
diff --git a/commons/src/main/java/lcsb/mapviewer/common/geometry/EllipseTransformation.java b/commons/src/main/java/lcsb/mapviewer/common/geometry/EllipseTransformation.java
index 6c55966ee363f347898039f1e35cdacac9198922..e01a511c93b269680735c27580f1f50db28a3cfe 100644
--- a/commons/src/main/java/lcsb/mapviewer/common/geometry/EllipseTransformation.java
+++ b/commons/src/main/java/lcsb/mapviewer/common/geometry/EllipseTransformation.java
@@ -4,7 +4,7 @@ import java.awt.geom.Ellipse2D;
 import java.awt.geom.Point2D;
 
 import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Configuration;
 
diff --git a/commons/src/main/java/lcsb/mapviewer/common/geometry/LineTransformation.java b/commons/src/main/java/lcsb/mapviewer/common/geometry/LineTransformation.java
index b1acefbd5c74926d5ef9211e4bbf6a4f96561fde..232dc780a694bd72bf10106d9020df7dba1e7e75 100644
--- a/commons/src/main/java/lcsb/mapviewer/common/geometry/LineTransformation.java
+++ b/commons/src/main/java/lcsb/mapviewer/common/geometry/LineTransformation.java
@@ -5,7 +5,7 @@ import java.awt.geom.PathIterator;
 import java.awt.geom.Point2D;
 
 import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Configuration;
 
diff --git a/commons/src/main/java/lcsb/mapviewer/common/geometry/PointTransformation.java b/commons/src/main/java/lcsb/mapviewer/common/geometry/PointTransformation.java
index 8a9aa9b03db93ca056f26abcf48cc2d841b3418f..5f32d1fcdd2ea89d1ed64151d79f9562f90d20ae 100644
--- a/commons/src/main/java/lcsb/mapviewer/common/geometry/PointTransformation.java
+++ b/commons/src/main/java/lcsb/mapviewer/common/geometry/PointTransformation.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.common.geometry;
 import java.awt.geom.Point2D;
 
 import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Class for basic point transformations.
diff --git a/commons/src/test/java/lcsb/mapviewer/common/ConfigurationTest.java b/commons/src/test/java/lcsb/mapviewer/common/ConfigurationTest.java
index 8956dca3c6ab6b362580df208fa3b5908a544d0a..cee7b915d10682b1928fbfcb946fc9b41e78831b 100644
--- a/commons/src/test/java/lcsb/mapviewer/common/ConfigurationTest.java
+++ b/commons/src/test/java/lcsb/mapviewer/common/ConfigurationTest.java
@@ -10,7 +10,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
diff --git a/commons/src/test/java/lcsb/mapviewer/common/GlobalLoggerAppenderTest.java b/commons/src/test/java/lcsb/mapviewer/common/GlobalLoggerAppenderTest.java
index c9078548bae0c655195bf895c0c14bc8db2d0fb5..bfcb56d53d0b2c4082b645797bebcbec1d823659 100644
--- a/commons/src/test/java/lcsb/mapviewer/common/GlobalLoggerAppenderTest.java
+++ b/commons/src/test/java/lcsb/mapviewer/common/GlobalLoggerAppenderTest.java
@@ -1,6 +1,7 @@
 package lcsb.mapviewer.common;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -47,4 +48,19 @@ public class GlobalLoggerAppenderTest {
     }
   }
 
+  @Test
+  public void testLogContent() {
+    try {
+      MinervaLoggerAppender appender = MinervaLoggerAppender.createAppender();
+      logger.warn("test");
+      logger.warn("xyz");
+      assertEquals(2, appender.getWarnings().size());
+      assertNotEquals(appender.getWarnings().get(0),appender.getWarnings().get(1));
+      MinervaLoggerAppender.unregisterLogEventStorage(appender);
+    } catch (Exception e) {
+      e.printStackTrace();
+      throw e;
+    }
+  }
+
 }
diff --git a/commons/src/test/java/lcsb/mapviewer/common/SystemClipboardTest.java b/commons/src/test/java/lcsb/mapviewer/common/SystemClipboardTest.java
index 6d4de972a6142f605d7ae7d6e35cdc78d4b42f8d..de178fef22bce295d08e0afb4789765b521bfb50 100644
--- a/commons/src/test/java/lcsb/mapviewer/common/SystemClipboardTest.java
+++ b/commons/src/test/java/lcsb/mapviewer/common/SystemClipboardTest.java
@@ -11,7 +11,7 @@ import java.awt.datatransfer.UnsupportedFlavorException;
 import java.io.IOException;
 
 import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
diff --git a/commons/src/test/java/lcsb/mapviewer/common/XmlParserTest.java b/commons/src/test/java/lcsb/mapviewer/common/XmlParserTest.java
index 018d6e5ffc30f94b3bc370846cfb93d78fbb60c7..375481170770160cbb9b8f8a7ccd62b9617142b5 100644
--- a/commons/src/test/java/lcsb/mapviewer/common/XmlParserTest.java
+++ b/commons/src/test/java/lcsb/mapviewer/common/XmlParserTest.java
@@ -15,7 +15,7 @@ import java.nio.charset.StandardCharsets;
 import java.util.List;
 
 import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.apache.xerces.dom.DocumentImpl;
 import org.apache.xerces.dom.ElementImpl;
 import org.junit.After;
diff --git a/commons/src/test/java/lcsb/mapviewer/common/geometry/EllipseTransformationTest.java b/commons/src/test/java/lcsb/mapviewer/common/geometry/EllipseTransformationTest.java
index 72b096c563f7fc319895d620285223feaea23f72..e73ada3547dab1b91e39757b17dd36f5cc28ec2e 100644
--- a/commons/src/test/java/lcsb/mapviewer/common/geometry/EllipseTransformationTest.java
+++ b/commons/src/test/java/lcsb/mapviewer/common/geometry/EllipseTransformationTest.java
@@ -6,7 +6,7 @@ import java.awt.geom.Ellipse2D;
 import java.awt.geom.Point2D;
 
 import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
diff --git a/commons/src/test/java/lcsb/mapviewer/common/geometry/LineTransformationTest.java b/commons/src/test/java/lcsb/mapviewer/common/geometry/LineTransformationTest.java
index 70ede68dd57529b4e06092fe573365be21a612a6..cf3bf6483dd585aa59703ad779e5b53291847fad 100644
--- a/commons/src/test/java/lcsb/mapviewer/common/geometry/LineTransformationTest.java
+++ b/commons/src/test/java/lcsb/mapviewer/common/geometry/LineTransformationTest.java
@@ -14,7 +14,7 @@ import java.awt.geom.Rectangle2D;
 import java.awt.geom.RoundRectangle2D;
 
 import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
diff --git a/converter-CellDesigner/pom.xml b/converter-CellDesigner/pom.xml
index 641ecc14e374496def655b697e6db0f339b751ee..870f92a8579673445eecdc47dcde7ee44f332af9 100644
--- a/converter-CellDesigner/pom.xml
+++ b/converter-CellDesigner/pom.xml
@@ -26,11 +26,16 @@
 			<version>1.0</version>
 		</dependency>
 
-		<!-- Log4J -->
+		<!-- Log4J2-->
 		<dependency>
-			<groupId>log4j</groupId>
-			<artifactId>log4j</artifactId>
-			<version>${log4j.version}</version>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-api</artifactId>
+			<version>${log4j2.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-core</artifactId>
+			<version>${log4j2.version}</version>
 		</dependency>
 
 		<!-- mockito used for testing -->
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerElementCollection.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerElementCollection.java
index 101fd298f92cd7b1edb951b653b13b75003a1995..33703b5189b9565ee83541ee9dc65000ea677127 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerElementCollection.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerElementCollection.java
@@ -8,7 +8,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.converter.model.celldesigner.structure.CellDesignerElement;
@@ -30,7 +30,7 @@ import lcsb.mapviewer.model.map.species.field.ModificationResidue;
  */
 public class CellDesignerElementCollection {
 
-  Logger logger = Logger.getLogger(CellDesignerElementCollection.class);
+  Logger logger = LogManager.getLogger(CellDesignerElementCollection.class);
 
   /**
    * Element by element identifier (it's CellDesigner identifier).
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerXmlParser.java
index e77b6de595c06d3355045c3ad8a3a7b2efb93bc6..8535cfabb8c65c76ec2a2b940fc2dbe88eadcd04 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerXmlParser.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerXmlParser.java
@@ -7,15 +7,17 @@ import java.util.List;
 
 import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.lang3.StringEscapeUtils;
-import org.apache.log4j.Logger;
-import org.apache.log4j.spi.LoggingEvent;
+import org.apache.logging.log4j.*;
+import org.apache.logging.log4j.core.LogEvent;
+
 import org.apache.xerces.parsers.DOMParser;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
-import lcsb.mapviewer.common.EventStorageLoggerAppender;
+
 import lcsb.mapviewer.common.MimeType;
+import lcsb.mapviewer.common.MinervaLoggerAppender;
 import lcsb.mapviewer.common.Pair;
 import lcsb.mapviewer.common.XmlParser;
 import lcsb.mapviewer.common.exception.InvalidXmlSchemaException;
@@ -77,7 +79,7 @@ public class CellDesignerXmlParser extends Converter {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(CellDesignerXmlParser.class.getName());
+  private static Logger logger = LogManager.getLogger(CellDesignerXmlParser.class.getName());
 
   /**
    * CellDesigner parser for layers.
@@ -596,9 +598,8 @@ public class CellDesignerXmlParser extends Converter {
    * @throws InconsistentModelException
    */
   public String model2Xml(Model model, boolean appendWarnings) throws InconsistentModelException {
-    EventStorageLoggerAppender appender = new EventStorageLoggerAppender();
+    MinervaLoggerAppender appender = MinervaLoggerAppender.createAppender();
     try {
-      Logger.getRootLogger().addAppender(appender);
       CellDesignerElementCollection elements = new CellDesignerElementCollection();
 
       SpeciesCollectionXmlParser speciesCollectionXmlParser = new SpeciesCollectionXmlParser(elements);
@@ -639,10 +640,8 @@ public class CellDesignerXmlParser extends Converter {
           result.append(XmlParser.escapeXml(model.getNotes()));
         }
         if (appendWarnings) {
-          for (LoggingEvent event : appender.getWarnings()) {
-            if (event.getMessage() instanceof String) {
-              result.append("\n" + ((String) event.getMessage()));
-            }
+          for (LogEvent event : appender.getWarnings()) {
+              result.append("\n" + event.getMessage().getFormattedMessage());
           }
         }
         result.append("</notes>");
@@ -652,7 +651,7 @@ public class CellDesignerXmlParser extends Converter {
       result.append("</sbml>");
       return result.toString();
     } finally {
-      Logger.getRootLogger().removeAppender(appender);
+      MinervaLoggerAppender.unregisterLogEventStorage(appender);
     }
   }
 
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/LayerXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/LayerXmlParser.java
index d84b7d7567cd915e6d1230ce2ab448249b450432..e06a9ba21de4b9ff11104fdf487f4419bfd6bf47 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/LayerXmlParser.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/LayerXmlParser.java
@@ -6,7 +6,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
@@ -37,7 +37,7 @@ public class LayerXmlParser {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(LayerXmlParser.class.getName());
+  private Logger logger = LogManager.getLogger(LayerXmlParser.class.getName());
 
   /**
    * Parser for common CellDesigner structures.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/alias/AbstractAliasXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/alias/AbstractAliasXmlParser.java
index e51b1b8cf5ed73e4edfc4e5d26a9e8d63b241b13..35c9d295ab2deb3abfd280f4ab87dce1a3603335 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/alias/AbstractAliasXmlParser.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/alias/AbstractAliasXmlParser.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.converter.model.celldesigner.alias;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -25,7 +25,7 @@ public abstract class AbstractAliasXmlParser<T extends Element> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(AbstractAliasXmlParser.class.getName());
+  private Logger logger = LogManager.getLogger(AbstractAliasXmlParser.class.getName());
 
   /**
    * Set of common functions used in parsing cell designer xml.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/alias/AliasCollectionXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/alias/AliasCollectionXmlParser.java
index 541804f13b8bee24568d8eb747536bae44214110..04cf98017389078b4a619a599c009e373c2974f5 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/alias/AliasCollectionXmlParser.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/alias/AliasCollectionXmlParser.java
@@ -4,7 +4,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
@@ -32,7 +32,7 @@ public class AliasCollectionXmlParser {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private Logger										logger								 = Logger.getLogger(AliasCollectionXmlParser.class.getName());
+	private Logger										logger								 = LogManager.getLogger(AliasCollectionXmlParser.class.getName());
 
 	/**
 	 * Single SpeciesAlias parser for CellDesigner node.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/alias/CompartmentAliasXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/alias/CompartmentAliasXmlParser.java
index 9fd04f1b3bd590b8af2cc913714dc03fe5d7731d..c8cd11454c8262f7f9571aef71259d2424d100c5 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/alias/CompartmentAliasXmlParser.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/alias/CompartmentAliasXmlParser.java
@@ -1,7 +1,7 @@
 package lcsb.mapviewer.converter.model.celldesigner.alias;
 
 import lcsb.mapviewer.common.XmlParser;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
@@ -31,7 +31,7 @@ public class CompartmentAliasXmlParser extends AbstractAliasXmlParser<Compartmen
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(CompartmentAliasXmlParser.class.getName());
+  private Logger logger = LogManager.getLogger(CompartmentAliasXmlParser.class.getName());
 
   /**
    * Model for which we are parsing aliases.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/alias/ComplexAliasXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/alias/ComplexAliasXmlParser.java
index 2092ce86263f31a353a33c761492bf4ef9fe9070..cecd43d6b14fed3134d51e1d7829a7abcde43a7a 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/alias/ComplexAliasXmlParser.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/alias/ComplexAliasXmlParser.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.model.celldesigner.alias;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
@@ -36,7 +36,7 @@ public class ComplexAliasXmlParser extends AbstractAliasXmlParser<Complex> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(ComplexAliasXmlParser.class.getName());
+  private Logger logger = LogManager.getLogger(ComplexAliasXmlParser.class.getName());
 
   /**
    * Because of the CellDesigner xml model we have to store information about all
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/alias/SpeciesAliasXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/alias/SpeciesAliasXmlParser.java
index c4a6be2c5e249692d7ab744903e24cc6cc3cd917..b00bd68b1d7644cd29fe1a90798a6cfe686fb737 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/alias/SpeciesAliasXmlParser.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/alias/SpeciesAliasXmlParser.java
@@ -1,7 +1,7 @@
 package lcsb.mapviewer.converter.model.celldesigner.alias;
 
 import lcsb.mapviewer.common.XmlParser;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
@@ -31,7 +31,7 @@ public class SpeciesAliasXmlParser extends AbstractAliasXmlParser<Species> {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(SpeciesAliasXmlParser.class.getName());
+  private Logger logger = LogManager.getLogger(SpeciesAliasXmlParser.class.getName());
 
   /**
    * Collection of {@link CellDesignerElement cell designer elements} parsed from
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/annotation/RestAnnotationParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/annotation/RestAnnotationParser.java
index adee4494b7013848ae35e23a15015bbc91f098f7..70de0af97a199c35dc1cac05513bea8c80ab30a9 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/annotation/RestAnnotationParser.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/annotation/RestAnnotationParser.java
@@ -9,7 +9,7 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import org.apache.commons.lang3.StringEscapeUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Node;
 
 import lcsb.mapviewer.common.XmlParser;
@@ -45,7 +45,7 @@ public class RestAnnotationParser {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(RestAnnotationParser.class);
+  private static Logger logger = LogManager.getLogger(RestAnnotationParser.class);
 
   /**
    * Pattern used to find rdf node in string xml.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/compartment/CompartmentCollectionXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/compartment/CompartmentCollectionXmlParser.java
index 33bd3f9dffd4630d93bc8c3132bfc5d62506be96..cd43a8ba32751359638c95c63f2368f17cdb31a6 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/compartment/CompartmentCollectionXmlParser.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/compartment/CompartmentCollectionXmlParser.java
@@ -6,7 +6,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
@@ -30,7 +30,7 @@ public class CompartmentCollectionXmlParser {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(CompartmentCollectionXmlParser.class.getName());
+  private Logger logger = LogManager.getLogger(CompartmentCollectionXmlParser.class.getName());
 
   /**
    * CellDesigner xml parser for single compartment.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/compartment/CompartmentParserException.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/compartment/CompartmentParserException.java
index 6e8afa1fb25d0e6dd23bad6caa74ee82533cba76..aab5cc418971ec6cadf6a24f2fb6eff4abf17078 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/compartment/CompartmentParserException.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/compartment/CompartmentParserException.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.converter.model.celldesigner.compartment;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.converter.model.celldesigner.CellDesignerParserException;
 import lcsb.mapviewer.model.map.compartment.Compartment;
@@ -13,7 +13,7 @@ import lcsb.mapviewer.model.map.compartment.Compartment;
  * 
  */
 public class CompartmentParserException extends CellDesignerParserException {
-  Logger logger = Logger.getLogger(CompartmentParserException.class);
+  Logger logger = LogManager.getLogger(CompartmentParserException.class);
 
   /**
    * 
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/compartment/CompartmentXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/compartment/CompartmentXmlParser.java
index 861b230bee757198fc0bc81cd78cf2f86a49fafd..57381b67233005785f4f9e3c1ef70d24fdbe76ad 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/compartment/CompartmentXmlParser.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/compartment/CompartmentXmlParser.java
@@ -1,7 +1,7 @@
 package lcsb.mapviewer.converter.model.celldesigner.compartment;
 
 import lcsb.mapviewer.common.XmlParser;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
@@ -28,7 +28,7 @@ public class CompartmentXmlParser extends AbstractElementXmlParser<CellDesignerC
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(CompartmentXmlParser.class.getName());
+  private static Logger logger = LogManager.getLogger(CompartmentXmlParser.class.getName());
 
   /**
    * Parser used to retrieve Miriam data for the element.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/function/FunctionXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/function/FunctionXmlParser.java
index 819db975a747de28c342a263a53b340cf53cf4a9..40f7e5dcab846d7f11084ccecee69ebb96d73375 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/function/FunctionXmlParser.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/function/FunctionXmlParser.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.model.celldesigner.function;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Node;
 
 import lcsb.mapviewer.common.XmlParser;
@@ -11,7 +11,7 @@ import lcsb.mapviewer.common.exception.InvalidXmlSchemaException;
 import lcsb.mapviewer.model.map.kinetics.SbmlFunction;
 
 public class FunctionXmlParser {
-  Logger logger = Logger.getLogger(FunctionXmlParser.class);
+  Logger logger = LogManager.getLogger(FunctionXmlParser.class);
 
   public SbmlFunction parseFunction(Node functionNode) throws InvalidXmlSchemaException {
     String functionId = XmlParser.getNodeAttr("id", functionNode);
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/AbstractCellDesignerAliasConverter.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/AbstractCellDesignerAliasConverter.java
index cbe4ebb4e561e1f008bad91a9b1add546073b75b..3b0eb4869fc61d21dcee0afd0fd9d3ddea4090d5 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/AbstractCellDesignerAliasConverter.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/AbstractCellDesignerAliasConverter.java
@@ -6,7 +6,7 @@ import java.awt.geom.Line2D;
 import java.awt.geom.PathIterator;
 import java.awt.geom.Point2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Configuration;
 import lcsb.mapviewer.common.exception.InvalidStateException;
@@ -59,7 +59,7 @@ public abstract class AbstractCellDesignerAliasConverter<T extends Element> impl
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(AbstractCellDesignerAliasConverter.class);
+  private static Logger logger = LogManager.getLogger(AbstractCellDesignerAliasConverter.class);
 
   /**
    * CellDesigner graphical helper with polygon transformation functions.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/CellDesignerAliasConverter.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/CellDesignerAliasConverter.java
index 22ef7b50bcdb9731b0cf5fea2edd380a259bad39..6fd5c93ca8cf213213ec042a7900b6e6ea9122fb 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/CellDesignerAliasConverter.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/CellDesignerAliasConverter.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.converter.model.celldesigner.geometry;
 
 import java.awt.geom.Point2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.common.exception.NotImplementedException;
@@ -37,7 +37,7 @@ public class CellDesignerAliasConverter implements ICellDesignerAliasConverter<E
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(CellDesignerAliasConverter.class);
+  private static Logger logger = LogManager.getLogger(CellDesignerAliasConverter.class);
 
   /**
    * Class helping with transforming objects into meaningful identifiers.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/GeneCellDesignerAliasConverter.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/GeneCellDesignerAliasConverter.java
index e7b0bcf8768e39773a413f3e1c7ce69e68375640..6a42ab80291f0a7c2c98b2bfd1cc659fe4a48072 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/GeneCellDesignerAliasConverter.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/GeneCellDesignerAliasConverter.java
@@ -7,7 +7,7 @@ import java.awt.geom.PathIterator;
 import java.awt.geom.Point2D;
 import java.awt.geom.Rectangle2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 import lcsb.mapviewer.converter.model.celldesigner.geometry.helper.CellDesignerAnchor;
@@ -25,7 +25,7 @@ import lcsb.mapviewer.model.map.species.field.ModificationResidue;
  */
 public class GeneCellDesignerAliasConverter extends AbstractCellDesignerAliasConverter<Gene> {
 
-  Logger logger = Logger.getLogger(GeneCellDesignerAliasConverter.class);
+  Logger logger = LogManager.getLogger(GeneCellDesignerAliasConverter.class);
 
   /**
    * Default constructor.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/IonCellDesignerAliasConverter.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/IonCellDesignerAliasConverter.java
index ceb8b281df888c56796ce7b05c5a6e589ea25f5c..50d1975f814cc813e4525d81915e0037e822e12b 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/IonCellDesignerAliasConverter.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/IonCellDesignerAliasConverter.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.model.celldesigner.geometry;
 import java.awt.geom.PathIterator;
 import java.awt.geom.Point2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 import lcsb.mapviewer.converter.model.celldesigner.geometry.helper.CellDesignerAnchor;
@@ -19,7 +19,7 @@ import lcsb.mapviewer.model.map.species.Ion;
  */
 public class IonCellDesignerAliasConverter extends AbstractCellDesignerAliasConverter<Ion> {
 
-  Logger logger = Logger.getLogger(IonCellDesignerAliasConverter.class);
+  Logger logger = LogManager.getLogger(IonCellDesignerAliasConverter.class);
 
   /**
    * Default constructor.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/ProteinCellDesignerAliasConverter.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/ProteinCellDesignerAliasConverter.java
index fe5d4724dd8a6467aa71a051e4350d57902b4df1..858ca696891c6be9692adb0a577a64f79d53f85e 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/ProteinCellDesignerAliasConverter.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/ProteinCellDesignerAliasConverter.java
@@ -8,7 +8,7 @@ import java.awt.geom.Point2D;
 import java.awt.geom.RoundRectangle2D;
 import java.util.ArrayList;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 import lcsb.mapviewer.converter.model.celldesigner.geometry.helper.CellDesignerAnchor;
@@ -43,7 +43,7 @@ public class ProteinCellDesignerAliasConverter extends AbstractCellDesignerAlias
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger		 logger																		 = Logger.getLogger(ProteinCellDesignerAliasConverter.class);
+	private static Logger		 logger																		 = LogManager.getLogger(ProteinCellDesignerAliasConverter.class);
 
 	/**
 	 * How big should be the arc in rectangle for generic protein representation.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/RnaCellDesignerAliasConverter.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/RnaCellDesignerAliasConverter.java
index e48e6caea925d4f626e17389745624220d7250bf..8cc3a919cd5bf7edbd7f543d2b759079c3314e1c 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/RnaCellDesignerAliasConverter.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/RnaCellDesignerAliasConverter.java
@@ -6,7 +6,7 @@ import java.awt.geom.PathIterator;
 import java.awt.geom.Point2D;
 import java.util.ArrayList;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 import lcsb.mapviewer.converter.model.celldesigner.geometry.helper.CellDesignerAnchor;
@@ -23,7 +23,7 @@ import lcsb.mapviewer.model.map.species.field.ModificationResidue;
  * 
  */
 public class RnaCellDesignerAliasConverter extends AbstractCellDesignerAliasConverter<Species> {
-  Logger logger = Logger.getLogger(RnaCellDesignerAliasConverter.class);
+  Logger logger = LogManager.getLogger(RnaCellDesignerAliasConverter.class);
 
   /**
    * Default constructor.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/SimpleMoleculeCellDesignerAliasConverter.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/SimpleMoleculeCellDesignerAliasConverter.java
index 4f5e3a7bb37fe2575813a1f408b93d10ceabec95..979e7516cae9dbc13e5a62b140476f5c3264eb68 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/SimpleMoleculeCellDesignerAliasConverter.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/SimpleMoleculeCellDesignerAliasConverter.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.model.celldesigner.geometry;
 import java.awt.geom.PathIterator;
 import java.awt.geom.Point2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 import lcsb.mapviewer.converter.model.celldesigner.geometry.helper.CellDesignerAnchor;
@@ -18,7 +18,7 @@ import lcsb.mapviewer.model.map.species.SimpleMolecule;
  */
 public class SimpleMoleculeCellDesignerAliasConverter extends AbstractCellDesignerAliasConverter<SimpleMolecule> {
 
-  Logger logger = Logger.getLogger(SimpleMoleculeCellDesignerAliasConverter.class);
+  Logger logger = LogManager.getLogger(SimpleMoleculeCellDesignerAliasConverter.class);
 
   /**
    * Default constructor.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/UnknownCellDesignerAliasConverter.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/UnknownCellDesignerAliasConverter.java
index 350f6f4f0a392a72a7859145f1d9d49168d8de3f..8dd5e721e7a903f3cca6960c756c210b1742193a 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/UnknownCellDesignerAliasConverter.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/UnknownCellDesignerAliasConverter.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.model.celldesigner.geometry;
 import java.awt.geom.PathIterator;
 import java.awt.geom.Point2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 import lcsb.mapviewer.converter.model.celldesigner.geometry.helper.CellDesignerAnchor;
@@ -19,7 +19,7 @@ import lcsb.mapviewer.model.map.species.Unknown;
  */
 public class UnknownCellDesignerAliasConverter extends AbstractCellDesignerAliasConverter<Unknown> {
 
-  Logger logger = Logger.getLogger(UnknownCellDesignerAliasConverter.class);
+  Logger logger = LogManager.getLogger(UnknownCellDesignerAliasConverter.class);
 
   /**
    * Default constructor.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerEllipseTransformation.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerEllipseTransformation.java
index 13b748f5c3ed4295ce6761b77a936c54bc89e2d9..374f3c09f84998fec78cf3d60345e0986e5208b6 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerEllipseTransformation.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerEllipseTransformation.java
@@ -4,7 +4,7 @@ import java.awt.geom.Point2D;
 
 import lcsb.mapviewer.common.geometry.EllipseTransformation;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * This class contains basic operators on ellipse used by CellDesigner
@@ -18,7 +18,7 @@ public class CellDesignerEllipseTransformation extends EllipseTransformation {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger	logger	= Logger.getLogger(CellDesignerEllipseTransformation.class.getName());
+	private static Logger	logger	= LogManager.getLogger(CellDesignerEllipseTransformation.class.getName());
 
 	/**
 	 * Method returns a cross point between ellipse and a line (from center point
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerLineTransformation.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerLineTransformation.java
index 0e7e2c69c4ef6008dccd5428b360300b7231d4d8..ac8d51af11451506e56ee91c7bf44ef1219f6ec2 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerLineTransformation.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerLineTransformation.java
@@ -9,7 +9,7 @@ import lcsb.mapviewer.common.geometry.LineTransformation;
 import lcsb.mapviewer.common.geometry.PointTransformation;
 import lcsb.mapviewer.model.graphics.PolylineData;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Class with basic operations on lines with special functions for CellDesigner
@@ -24,7 +24,7 @@ public class CellDesignerLineTransformation extends LineTransformation {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger								logger	= Logger.getLogger(CellDesignerLineTransformation.class.getName());
+	private static Logger								logger	= LogManager.getLogger(CellDesignerLineTransformation.class.getName());
 
 	/**
 	 * Class used for transformations on {@link Point2D} class.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerPointTransformation.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerPointTransformation.java
index 4fb062a8dcd9335d5fd09cd6b37a3ce24ae58470..89b2ef4727baa27bc7404b9e323f1ddf8d69d988 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerPointTransformation.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerPointTransformation.java
@@ -4,7 +4,7 @@ import java.awt.geom.Point2D;
 
 import lcsb.mapviewer.common.geometry.PointTransformation;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Class for basic point transformations.
@@ -17,7 +17,7 @@ public class CellDesignerPointTransformation extends PointTransformation {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger	logger	= Logger.getLogger(CellDesignerPointTransformation.class.getName());
+	private static Logger	logger	= LogManager.getLogger(CellDesignerPointTransformation.class.getName());
 
 	/**
 	 * This method transform coordinates of pointP in celldesginer format (base:
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerPolygonTransformation.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerPolygonTransformation.java
index 7236486ea5d4dca90242e55a646bb196d19eb928..8bee6c829dbb66231d9567d6cc665f60e9a76029 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerPolygonTransformation.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerPolygonTransformation.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.model.celldesigner.geometry.helper;
 import java.awt.geom.Point2D;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 
@@ -19,7 +19,7 @@ public class CellDesignerPolygonTransformation {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger logger = Logger.getLogger(CellDesignerPolygonTransformation.class.getName());
+	private static Logger logger = LogManager.getLogger(CellDesignerPolygonTransformation.class.getName());
 
 	/**
 	 * Returns a middle point between two points (using Euclidean distance).
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerRectangleTransformation.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerRectangleTransformation.java
index e19456989bc8685981cf5b6b4898275d35d03d23..bd8b5a3b48bbfca234fe48309793b4151f44fc6e 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerRectangleTransformation.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerRectangleTransformation.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.model.celldesigner.geometry.helper;
 import java.awt.geom.Point2D;
 import java.util.ArrayList;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Class with basic operations on rectangles.
@@ -22,7 +22,7 @@ public class CellDesignerRectangleTransformation {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger											logger								= Logger.getLogger(CellDesignerRectangleTransformation.class.getName());
+	private static Logger											logger								= LogManager.getLogger(CellDesignerRectangleTransformation.class.getName());
 
 	/**
 	 * Returns a point on a rectangle for anchor.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/parameter/ParameterCollectionXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/parameter/ParameterCollectionXmlParser.java
index 70dbcad476636a115440624da5c35d2f70b23889..84b3aa6e5350d6bb6fdda1cc9b09abf393ee2b45 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/parameter/ParameterCollectionXmlParser.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/parameter/ParameterCollectionXmlParser.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.model.celldesigner.parameter;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Node;
 
 import lcsb.mapviewer.common.XmlParser;
@@ -12,7 +12,7 @@ import lcsb.mapviewer.model.map.kinetics.SbmlParameter;
 import lcsb.mapviewer.model.map.model.Model;
 
 public class ParameterCollectionXmlParser {
-  Logger logger = Logger.getLogger(ParameterCollectionXmlParser.class);
+  Logger logger = LogManager.getLogger(ParameterCollectionXmlParser.class);
 
   private ParameterXmlParser parameterParser;
 
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/parameter/ParameterXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/parameter/ParameterXmlParser.java
index af8f4fcb2682e388b14d8b655a34d1a25ef04384..e813538f34107828ba3e4a79e52e5ff7ea97dc74 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/parameter/ParameterXmlParser.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/parameter/ParameterXmlParser.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.converter.model.celldesigner.parameter;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Node;
 
 import lcsb.mapviewer.common.XmlParser;
@@ -9,7 +9,7 @@ import lcsb.mapviewer.model.map.kinetics.SbmlParameter;
 import lcsb.mapviewer.model.map.model.Model;
 
 public class ParameterXmlParser {
-  Logger logger = Logger.getLogger(ParameterXmlParser.class);
+  Logger logger = LogManager.getLogger(ParameterXmlParser.class);
 
   private Model model;
 
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/reaction/KineticsXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/reaction/KineticsXmlParser.java
index cb11eb1014eb2122826c4811048b2d1549ca82d4..900beeb2c650b23616c798cf63044537ba461076 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/reaction/KineticsXmlParser.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/reaction/KineticsXmlParser.java
@@ -4,7 +4,7 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Node;
 
 import lcsb.mapviewer.common.XmlParser;
@@ -19,7 +19,7 @@ import lcsb.mapviewer.model.map.model.Model;
 import lcsb.mapviewer.model.map.species.Element;
 
 public class KineticsXmlParser {
-  Logger logger = Logger.getLogger(KineticsXmlParser.class);
+  Logger logger = LogManager.getLogger(KineticsXmlParser.class);
 
   ParameterCollectionXmlParser parameterParser;
 
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionCollectionXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionCollectionXmlParser.java
index f6f3425f66ceef593ff483fcee59d59a015b7176..fedc05898a81e7a4f34a6442847d3c0a40c4a395 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionCollectionXmlParser.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionCollectionXmlParser.java
@@ -4,7 +4,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
@@ -31,7 +31,7 @@ public class ReactionCollectionXmlParser {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(ReactionCollectionXmlParser.class.getName());
+  private Logger logger = LogManager.getLogger(ReactionCollectionXmlParser.class.getName());
 
   /**
    * Model for which parsing (or transformation to xml) is being done.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionFromXml.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionFromXml.java
index 6fcda6a46edc8a2ce9daecdfd5abbc42c15d8e98..3039694ed84e27d65095819c8d964adee010880a 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionFromXml.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionFromXml.java
@@ -11,7 +11,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
@@ -127,7 +127,7 @@ public class ReactionFromXml {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(ReactionXmlParser.class.getName());
+  private Logger logger = LogManager.getLogger(ReactionXmlParser.class.getName());
 
   /**
    * Xml parser used for processing notes into structured data.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionToXml.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionToXml.java
index 64fac5e34b44d82bd1dd752883f8c54b3b911011..9e4534e75cb9eb53810e44f7c792e37f2c5ff837 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionToXml.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionToXml.java
@@ -10,7 +10,7 @@ import java.util.Set;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Configuration;
 import lcsb.mapviewer.common.XmlParser;
@@ -55,7 +55,7 @@ public class ReactionToXml {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(ReactionToXml.class);
+  private static Logger logger = LogManager.getLogger(ReactionToXml.class);
 
   /**
    * Helper object used for manipulation on the point coorinates in CellDesigner
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/AbstractElementXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/AbstractElementXmlParser.java
index fb62ed9994a68a4afbcc4068160a7509949d8e4e..4b4c18b2ff0fdf3cf40bf71254b9b72ec7e9cdf8 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/AbstractElementXmlParser.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/AbstractElementXmlParser.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.model.celldesigner.species;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -34,7 +34,7 @@ public abstract class AbstractElementXmlParser<T extends CellDesignerElement<?>,
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(AbstractElementXmlParser.class.getName());
+  private Logger logger = LogManager.getLogger(AbstractElementXmlParser.class.getName());
 
   /**
    * List of special strings in CellDesigner that should be translated into some
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/AntisenseRnaXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/AntisenseRnaXmlParser.java
index 1534a6873befd87ffce7b49cecca06fd82a411a4..45005aeaed06c7b4688d33e758253ac9295c6390 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/AntisenseRnaXmlParser.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/AntisenseRnaXmlParser.java
@@ -1,7 +1,7 @@
 package lcsb.mapviewer.converter.model.celldesigner.species;
 
 import lcsb.mapviewer.common.XmlParser;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
@@ -29,7 +29,7 @@ public class AntisenseRnaXmlParser extends AbstractElementXmlParser<CellDesigner
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(AntisenseRnaXmlParser.class.getName());
+  private Logger logger = LogManager.getLogger(AntisenseRnaXmlParser.class.getName());
 
   /**
    * List of {@link CellDesignerElement celldesigner elements} obtained during
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/GeneXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/GeneXmlParser.java
index 4ebbcd66a680bbf1bd06da435ffd6bf63d5f581a..1a3fbbfc963feb7f7817648edb07a5e66eead740 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/GeneXmlParser.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/GeneXmlParser.java
@@ -1,7 +1,7 @@
 package lcsb.mapviewer.converter.model.celldesigner.species;
 
 import lcsb.mapviewer.common.XmlParser;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
@@ -30,7 +30,7 @@ public class GeneXmlParser extends AbstractElementXmlParser<CellDesignerGene, Ge
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(GeneXmlParser.class.getName());
+  private Logger logger = LogManager.getLogger(GeneXmlParser.class.getName());
 
   /**
    * Collection of {@link CellDesignerElement cell designer elements} parsed from
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/InternalModelSpeciesData.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/InternalModelSpeciesData.java
index 74548a88b615d74f4eafdde2c44c8e5ac2b44d9f..26770e3b4af306d7e5f4a7ce0f1e8b1dba9c974e 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/InternalModelSpeciesData.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/InternalModelSpeciesData.java
@@ -4,7 +4,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Pair;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
@@ -34,7 +34,7 @@ public class InternalModelSpeciesData {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final Logger											logger		= Logger.getLogger(InternalModelSpeciesData.class);
+	private final Logger											logger		= LogManager.getLogger(InternalModelSpeciesData.class);
 
 	/**
 	 * Collection of proteins. Used only by the CellDesigner parser.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/ProteinMapping.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/ProteinMapping.java
index 49de3bfaf8b7aaaae14c4fc6cc95065254f87202..67dc601b640c042350f2e4eab7e826b161c797f9 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/ProteinMapping.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/ProteinMapping.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.converter.model.celldesigner.species;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidStateException;
 import lcsb.mapviewer.converter.model.celldesigner.structure.CellDesignerGenericProtein;
@@ -57,7 +57,7 @@ public enum ProteinMapping {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger														logger = Logger.getLogger(ProteinMapping.class);
+	private static Logger														logger = LogManager.getLogger(ProteinMapping.class);
 
 	/**
 	 * {@link CellDesignerProtein Celldesigner structure} used to represent the
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/ProteinXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/ProteinXmlParser.java
index 5989a7b5f46d512ab5604914d0780e4d0f015493..4066b611b610796acfd00cd0fad9f201adab70c3 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/ProteinXmlParser.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/ProteinXmlParser.java
@@ -4,7 +4,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import lcsb.mapviewer.common.XmlParser;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
@@ -35,7 +35,7 @@ public class ProteinXmlParser extends AbstractElementXmlParser<CellDesignerProte
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(ProteinXmlParser.class.getName());
+  private Logger logger = LogManager.getLogger(ProteinXmlParser.class.getName());
 
   /**
    * Collection of {@link CellDesignerElement cell designer elements} parsed from
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/RnaXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/RnaXmlParser.java
index 10631b4d6dc4dfe5234b82fb59751bec212ab832..3520d7bae2b8908830bf8509a958628f4921de46 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/RnaXmlParser.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/RnaXmlParser.java
@@ -1,7 +1,7 @@
 package lcsb.mapviewer.converter.model.celldesigner.species;
 
 import lcsb.mapviewer.common.XmlParser;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
@@ -30,7 +30,7 @@ public class RnaXmlParser extends AbstractElementXmlParser<CellDesignerRna, Rna>
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(RnaXmlParser.class.getName());
+  private Logger logger = LogManager.getLogger(RnaXmlParser.class.getName());
 
   /**
    * Collection of {@link CellDesignerElement cell designer elements} parsed from
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/SpeciesCollection.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/SpeciesCollection.java
index 83ff2439c78f96d5f367aabff44ee7865e039867..731647113ed84675f1d1aa052e8a43b0c3c12c5e 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/SpeciesCollection.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/SpeciesCollection.java
@@ -5,7 +5,7 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidStateException;
 import lcsb.mapviewer.converter.model.celldesigner.structure.CellDesignerSpecies;
@@ -29,7 +29,7 @@ public class SpeciesCollection<C extends CellDesignerSpecies<?>> {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private Logger										logger = Logger.getLogger(SpeciesCollection.class.getName());
+	private Logger										logger = LogManager.getLogger(SpeciesCollection.class.getName());
 
 	/**
 	 * List of all elements added to this collection.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/SpeciesCollectionXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/SpeciesCollectionXmlParser.java
index 3f333303878aa4b81b97c04ef49ede697d74f8ca..60df8f48b864a95e03532533e565d7ed9375b995 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/SpeciesCollectionXmlParser.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/SpeciesCollectionXmlParser.java
@@ -7,7 +7,7 @@ import java.util.List;
 import java.util.Set;
 
 import org.apache.commons.lang3.StringEscapeUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
@@ -46,7 +46,7 @@ public class SpeciesCollectionXmlParser {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private Logger																										logger		 = Logger.getLogger(SpeciesCollectionXmlParser.class.getName());
+	private Logger																										logger		 = LogManager.getLogger(SpeciesCollectionXmlParser.class.getName());
 
 	/**
 	 * Parser used for {@link CellDesignerRna} objects.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/SpeciesSbmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/SpeciesSbmlParser.java
index a9b68f8d3707e34a7fe5014b8730a9c507b082ac..b5a6deabd421ce820581750394a8092bb20affaf 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/SpeciesSbmlParser.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/species/SpeciesSbmlParser.java
@@ -1,7 +1,7 @@
 package lcsb.mapviewer.converter.model.celldesigner.species;
 
 import lcsb.mapviewer.common.XmlParser;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
@@ -48,7 +48,7 @@ public class SpeciesSbmlParser extends AbstractElementXmlParser<CellDesignerSpec
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(SpeciesSbmlParser.class.getName());
+  private Logger logger = LogManager.getLogger(SpeciesSbmlParser.class.getName());
 
   /**
    * Collection of {@link CellDesignerElement cell designer elements} parsed from
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerAntisenseRna.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerAntisenseRna.java
index 119d61fbdac2544fc916434790b5970b8926e227..942d2f895be969c398ac1810cc5c83579f82ec62 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerAntisenseRna.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerAntisenseRna.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.model.celldesigner.structure;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.common.exception.NotImplementedException;
@@ -32,7 +32,7 @@ public class CellDesignerAntisenseRna extends CellDesignerSpecies<AntisenseRna>
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(CellDesignerAntisenseRna.class);
+  private static Logger logger = LogManager.getLogger(CellDesignerAntisenseRna.class);
 
   /**
    * List of antisense rna regions (some rna sequences) in this object.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerCompartment.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerCompartment.java
index 77f8d8a7a4a9bf0e5efe35b8699c9b78d26c1848..e33cb055d944a60c94850bd5f55a5577edc8e737 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerCompartment.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerCompartment.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.model.celldesigner.structure;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 import lcsb.mapviewer.model.map.compartment.Compartment;
@@ -26,7 +26,7 @@ public class CellDesignerCompartment extends CellDesignerElement<Compartment>
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(CellDesignerCompartment.class);
+  private static Logger logger = LogManager.getLogger(CellDesignerCompartment.class);
 
   /**
    * Identifier of the compartment. Unique in the model
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerComplexSpecies.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerComplexSpecies.java
index a5ce21f7a13fb14c32bc44b0f15d710ea2b77ead..0de3bc46d8b641a2bdda056e8ec167f3db6fe030 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerComplexSpecies.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerComplexSpecies.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.model.celldesigner.structure;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.common.exception.NotImplementedException;
@@ -25,7 +25,7 @@ public class CellDesignerComplexSpecies extends CellDesignerSpecies<Complex> {
 	/**
 	 * Default class logger.
 	 */
-	private static Logger								logger					 = Logger.getLogger(CellDesignerComplexSpecies.class.getName());
+	private static Logger								logger					 = LogManager.getLogger(CellDesignerComplexSpecies.class.getName());
 
 	/**
 	 * Elements that exists in this complex.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerElement.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerElement.java
index 55548200389d25432925ef386d9284d9fbbe5144..2174a5c872abf6fd46e31abe1b9dd7f1d4ade58f 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerElement.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerElement.java
@@ -7,7 +7,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.model.map.MiriamData;
@@ -39,7 +39,7 @@ public abstract class CellDesignerElement<T extends Element> implements Serializ
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(CellDesignerElement.class);
+  private static Logger logger = LogManager.getLogger(CellDesignerElement.class);
 
   /**
    * Notes describing this element.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerGene.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerGene.java
index 5d83e67eab62a02f5fd58fe6c0d7e6b00e30fa80..8981dc84888ceefa119a86626dcdfbb409b2aecf 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerGene.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerGene.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.model.celldesigner.structure;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.common.exception.NotImplementedException;
@@ -27,7 +27,7 @@ public class CellDesignerGene extends CellDesignerSpecies<Gene> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(CellDesignerGene.class);
+  private static Logger logger = LogManager.getLogger(CellDesignerGene.class);
 
   /**
    * 
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerGenericProtein.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerGenericProtein.java
index 28dec49afe1cf2394b0a6b2c1f382904ee282b2f..52b1d1c780633301ab7f0da438794ae03c09dc51 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerGenericProtein.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerGenericProtein.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.converter.model.celldesigner.structure;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 import lcsb.mapviewer.model.map.species.GenericProtein;
@@ -17,7 +17,7 @@ public class CellDesignerGenericProtein extends CellDesignerProtein<GenericProte
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private transient Logger logger = Logger.getLogger(CellDesignerGenericProtein.class);
+  private transient Logger logger = LogManager.getLogger(CellDesignerGenericProtein.class);
 
   /**
    * 
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerProtein.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerProtein.java
index 08420d031d2699700bde7ab379d102cc30fda3a0..70ca0ed345a660322585eef00acde132b1676e96 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerProtein.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerProtein.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.model.celldesigner.structure;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.common.exception.NotImplementedException;
@@ -31,7 +31,7 @@ public class CellDesignerProtein<T extends Protein> extends CellDesignerSpecies<
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(CellDesignerProtein.class.getName());
+  private static Logger logger = LogManager.getLogger(CellDesignerProtein.class.getName());
 
   /**
    * State of the protein.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerRna.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerRna.java
index 10392b74ac7b448feb1553231fa050c3a005abad..42ae597ea7166421897bd1d13e678156433974d7 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerRna.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerRna.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.model.celldesigner.structure;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.common.exception.NotImplementedException;
@@ -32,7 +32,7 @@ public class CellDesignerRna extends CellDesignerSpecies<Rna> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(CellDesignerRna.class.getName());
+  private static Logger logger = LogManager.getLogger(CellDesignerRna.class.getName());
 
   /**
    * List of rna regions (some rna sequences) in this object.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerSimpleMolecule.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerSimpleMolecule.java
index 40b0f240c5d5791c71f116a50d4422ee12cde275..04e722dfe6dc7472e4b3cc39cd6f86a7516593d3 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerSimpleMolecule.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerSimpleMolecule.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.converter.model.celldesigner.structure;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 import lcsb.mapviewer.model.map.species.SimpleMolecule;
@@ -22,7 +22,7 @@ public class CellDesignerSimpleMolecule extends CellDesignerChemical<SimpleMolec
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger			logger					 = Logger.getLogger(CellDesignerSimpleMolecule.class.getName());
+	private static Logger			logger					 = LogManager.getLogger(CellDesignerSimpleMolecule.class.getName());
 
 	/**
 	 * Constructor that initializes molecule with the data passed in the argument.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerSpecies.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerSpecies.java
index 402e947f42c70c48b0ea07cb8db0773afe7c2407..4835b7a64fa03549cb2f8a9573e9e1f3e58f77a3 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerSpecies.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/CellDesignerSpecies.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.converter.model.celldesigner.structure;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.common.exception.NotImplementedException;
@@ -27,7 +27,7 @@ public class CellDesignerSpecies<T extends Species> extends CellDesignerElement<
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(CellDesignerSpecies.class.getName());
+  private static Logger logger = LogManager.getLogger(CellDesignerSpecies.class.getName());
 
   /**
    * Identifier of the species. It must be unique within the model.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/fields/CellDesignerModificationResidue.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/fields/CellDesignerModificationResidue.java
index 10789b0b509f5559600096ece698857338bec02f..b131818c5f8526f85de0bd3750e13035de036f83 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/fields/CellDesignerModificationResidue.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/fields/CellDesignerModificationResidue.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.converter.model.celldesigner.structure.fields;
 
 import java.io.Serializable;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Configuration;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
@@ -36,7 +36,7 @@ public class CellDesignerModificationResidue implements Serializable {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(CellDesignerModificationResidue.class.getName());
+  private static Logger logger = LogManager.getLogger(CellDesignerModificationResidue.class.getName());
 
   /**
    * Identifier of the modification. Must be unique in single map model.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/fields/ConnectScheme.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/fields/ConnectScheme.java
index 0f1596600e8d7116e9e55b1186394373eabbc238..dcdab0a36fc2fa6794b9bb937038b3fac32b7a26 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/fields/ConnectScheme.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/fields/ConnectScheme.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.model.celldesigner.structure.fields;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * CellDEsigner structure used for storing some line information.
@@ -17,7 +17,7 @@ public class ConnectScheme {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger				logger = Logger.getLogger(ConnectScheme.class.getName());
+	private static Logger				logger = LogManager.getLogger(ConnectScheme.class.getName());
 
 	/**
 	 * Not used in our model... No ide what it means.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/fields/SpeciesState.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/fields/SpeciesState.java
index 2e9562224a93b787b2e21c676b552c2e88503108..1c20b73fadc7ccb925a4f0de4c7c0ba5e69217c6 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/fields/SpeciesState.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/structure/fields/SpeciesState.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.model.celldesigner.structure.fields;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.model.map.species.AntisenseRna;
@@ -26,7 +26,7 @@ public class SpeciesState {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(SpeciesState.class.getName());
+  private Logger logger = LogManager.getLogger(SpeciesState.class.getName());
 
   /**
    * How many dimers are in the species.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/types/ModifierTypeUtils.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/types/ModifierTypeUtils.java
index 99d3aa1eb1887d9f6cd71be096f0576052427909..d70c71fe6c3b92b21f4bf2b68a74a45c8ca28e54 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/types/ModifierTypeUtils.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/types/ModifierTypeUtils.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.model.celldesigner.types;
 import java.awt.geom.Line2D;
 import java.awt.geom.Point2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.common.exception.InvalidStateException;
@@ -30,7 +30,7 @@ public class ModifierTypeUtils {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger logger = Logger.getLogger(ModifierTypeUtils.class);
+	private static Logger logger = LogManager.getLogger(ModifierTypeUtils.class);
 
 	/**
 	 * Returns {@link ModifierType} that reference to the clazz.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/types/OperatorTypeUtils.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/types/OperatorTypeUtils.java
index ccadf86fcceee6ad0fec18df76f2faf7b9e4a6f3..64198f2339620c1c0a7e6b079617899bdd071123 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/types/OperatorTypeUtils.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/types/OperatorTypeUtils.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.converter.model.celldesigner.types;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.common.exception.InvalidStateException;
@@ -19,7 +19,7 @@ public class OperatorTypeUtils {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger logger = Logger.getLogger(OperatorTypeUtils.class);
+	private static Logger logger = LogManager.getLogger(OperatorTypeUtils.class);
 
 	/**
 	 * Return {@link OperatorType} for the operator class.
diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/unit/UnitXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/unit/UnitXmlParser.java
index 8ea0c1e6749101f274b4a1ff2b5ac2c1a23a466c..bcefcf7f44c33ebe0000eedbb251b15eeb3413e1 100644
--- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/unit/UnitXmlParser.java
+++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/unit/UnitXmlParser.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.model.celldesigner.unit;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Node;
 
 import lcsb.mapviewer.common.XmlParser;
@@ -13,7 +13,7 @@ import lcsb.mapviewer.model.map.kinetics.SbmlUnitType;
 import lcsb.mapviewer.model.map.kinetics.SbmlUnitTypeFactor;
 
 public class UnitXmlParser {
-  Logger logger = Logger.getLogger(UnitXmlParser.class);
+  Logger logger = LogManager.getLogger(UnitXmlParser.class);
 
   public SbmlUnit parseFunction(Node unitNode) throws InvalidXmlSchemaException {
     String unitId = XmlParser.getNodeAttr("id", unitNode);
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerTestFunctions.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerTestFunctions.java
index fa6ea6d6b3369d711253f546e30c60609c4ee9be..90af2cd71c769d1ef162225c6f14e6b92c16a576 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerTestFunctions.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerTestFunctions.java
@@ -29,8 +29,9 @@ import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 
-import org.apache.log4j.Logger;
-import org.apache.log4j.spi.LoggingEvent;
+import org.apache.logging.log4j.*;
+import org.apache.logging.log4j.core.LogEvent;
+
 import org.junit.After;
 import org.junit.Before;
 import org.w3c.dom.Document;
@@ -40,7 +41,8 @@ import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 
 import lcsb.mapviewer.common.Configuration;
-import lcsb.mapviewer.common.EventStorageLoggerAppender;
+
+import lcsb.mapviewer.common.MinervaLoggerAppender;
 import lcsb.mapviewer.common.exception.InvalidXmlSchemaException;
 import lcsb.mapviewer.converter.ConverterParams;
 import lcsb.mapviewer.converter.InvalidInputDataExecption;
@@ -50,25 +52,24 @@ import lcsb.mapviewer.model.map.model.Model;
 import lcsb.mapviewer.model.map.model.ModelComparator;
 
 public abstract class CellDesignerTestFunctions {
-  private Logger logger = Logger.getLogger(CellDesignerTestFunctions.class);
+  private Logger logger = LogManager.getLogger(CellDesignerTestFunctions.class);
 
   protected static double EPSILON = Configuration.EPSILON;
 
-  private EventStorageLoggerAppender appender;
+  private MinervaLoggerAppender appender;
 
   @Before
   public final void _setUp() throws Exception {
-    Logger.getRootLogger().removeAppender(appender);
-    appender = new EventStorageLoggerAppender();
-    Logger.getRootLogger().addAppender(appender);
+    MinervaLoggerAppender.unregisterLogEventStorage(appender);
+    appender = MinervaLoggerAppender.createAppender();
   }
 
   @After
   public final void _tearDown() throws Exception {
-    Logger.getRootLogger().removeAppender(appender);
+    MinervaLoggerAppender.unregisterLogEventStorage(appender);
   }
 
-  protected List<LoggingEvent> getWarnings() {
+  protected List<LogEvent> getWarnings() {
     return appender.getWarnings();
   }
 
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerXmlParserTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerXmlParserTest.java
index 2f0d754c17ec7b29493c480b83631802df4bc992..31079efea29e8084ffecb4b97f9c80d1bcae6cb0 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerXmlParserTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerXmlParserTest.java
@@ -24,7 +24,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -58,7 +58,7 @@ import lcsb.mapviewer.model.map.species.SimpleMolecule;
 import lcsb.mapviewer.model.map.species.Species;
 
 public class CellDesignerXmlParserTest extends CellDesignerTestFunctions {
-  Logger logger = Logger.getLogger(CellDesignerXmlParserTest.class);
+  Logger logger = LogManager.getLogger(CellDesignerXmlParserTest.class);
 
   ModelComparator modelComparator = new ModelComparator();
 
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/ComplexParserTests.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/ComplexParserTests.java
index 5c62f1ecae86e3790e75e085960862a73704f3f8..b11d90a33c33a210652988c51797de27fcf63654 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/ComplexParserTests.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/ComplexParserTests.java
@@ -12,7 +12,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -39,7 +39,7 @@ import lcsb.mapviewer.model.map.species.field.Residue;
 import lcsb.mapviewer.modelutils.map.ElementUtils;
 
 public class ComplexParserTests extends CellDesignerTestFunctions {
-  Logger logger = Logger.getLogger(ComplexParserTests.class);
+  Logger logger = LogManager.getLogger(ComplexParserTests.class);
 
   ElementUtils eu = new ElementUtils();
 
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/LayerXmlParserTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/LayerXmlParserTest.java
index cd86511d35604f35e9102a1b91c751b71ecd7f7c..6c40043d8a5260b75ccebc2fe670260de792c720 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/LayerXmlParserTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/LayerXmlParserTest.java
@@ -11,7 +11,7 @@ import java.awt.Color;
 import java.awt.geom.Rectangle2D;
 import java.util.Collection;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -35,7 +35,7 @@ import lcsb.mapviewer.model.map.species.GenericProtein;
 import lcsb.mapviewer.model.map.species.Species;
 
 public class LayerXmlParserTest extends CellDesignerTestFunctions {
-  Logger logger = Logger.getLogger(LayerXmlParserTest.class);
+  Logger logger = LogManager.getLogger(LayerXmlParserTest.class);
 
   LayerXmlParser parser = new LayerXmlParser();
 
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/ModificationTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/ModificationTest.java
index 33809b18ba513a4845abe16ebd9a4fce26f8fbdf..154ccbef7d995ad305b469c3c98f1ac8bac7725c 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/ModificationTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/ModificationTest.java
@@ -4,7 +4,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -26,7 +26,7 @@ import lcsb.mapviewer.model.map.species.field.Residue;
 import lcsb.mapviewer.model.map.species.field.TranscriptionSite;
 
 public class ModificationTest extends CellDesignerTestFunctions {
-  Logger logger = Logger.getLogger(ModificationTest.class);
+  Logger logger = LogManager.getLogger(ModificationTest.class);
 
   @Before
   public void setUp() throws Exception {
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/NestedComplexParsingTests.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/NestedComplexParsingTests.java
index f432dcbdb7e70e8fe8646fd45af78dccf962e715..aeed1f1a96e57eac33af3b0cb00ee890edccebf5 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/NestedComplexParsingTests.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/NestedComplexParsingTests.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.model.celldesigner;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import lcsb.mapviewer.model.map.species.Species;
 import lcsb.mapviewer.modelutils.map.ElementUtils;
 
 public class NestedComplexParsingTests extends CellDesignerTestFunctions {
-  Logger logger = Logger.getLogger(NestedComplexParsingTests.class);
+  Logger logger = LogManager.getLogger(NestedComplexParsingTests.class);
   ElementUtils eu = new ElementUtils();
 
   @Before
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/ReconDataInCellDesignerXmlParserTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/ReconDataInCellDesignerXmlParserTest.java
index 7a182b3e9f42b2b6126b18f8d554d57b750d231d..dfbe867583ce69eefdbe64333714bf860303ad94 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/ReconDataInCellDesignerXmlParserTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/ReconDataInCellDesignerXmlParserTest.java
@@ -4,7 +4,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import lcsb.mapviewer.model.map.reaction.Reaction;
 import lcsb.mapviewer.model.map.species.Species;
 
 public class ReconDataInCellDesignerXmlParserTest extends CellDesignerTestFunctions {
-	Logger	logger	= Logger.getLogger(ReconDataInCellDesignerXmlParserTest.class);
+	Logger	logger	= LogManager.getLogger(ReconDataInCellDesignerXmlParserTest.class);
 
 	@Before
 	public void setUp() throws Exception {
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/alias/AliasCollectionXmlParserTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/alias/AliasCollectionXmlParserTest.java
index f5b99e33d9630d9b5b4708ad5ec6d8171a2dea9f..38e4acc9faed93f0b851818587910ed8460dcaa7 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/alias/AliasCollectionXmlParserTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/alias/AliasCollectionXmlParserTest.java
@@ -9,7 +9,7 @@ import java.awt.geom.Point2D;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -34,7 +34,7 @@ public class AliasCollectionXmlParserTest extends CellDesignerTestFunctions {
   AliasCollectionXmlParser parser;
   Model model;
   CellDesignerElementCollection elements;
-  Logger logger = Logger.getLogger(AliasCollectionXmlParserTest.class.getName());
+  Logger logger = LogManager.getLogger(AliasCollectionXmlParserTest.class.getName());
 
   @Before
   public void setUp() throws Exception {
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/alias/CompartmentAliasXmlParserTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/alias/CompartmentAliasXmlParserTest.java
index 766d72f2972054aaf1403e6b39ccbdd034e7efa2..5364039301a8f6d94b201d1d16b4536c04369b22 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/alias/CompartmentAliasXmlParserTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/alias/CompartmentAliasXmlParserTest.java
@@ -8,7 +8,7 @@ import static org.junit.Assert.fail;
 
 import java.awt.geom.Point2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -29,7 +29,7 @@ import lcsb.mapviewer.model.map.model.Model;
 import lcsb.mapviewer.model.map.model.ModelFullIndexed;
 
 public class CompartmentAliasXmlParserTest extends CellDesignerTestFunctions {
-  static Logger logger = Logger.getLogger(CompartmentAliasXmlParser.class);
+  static Logger logger = LogManager.getLogger(CompartmentAliasXmlParser.class);
 
   CompartmentAliasXmlParser parser;
   Model model;
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/alias/SpeciesAliasXmlParserTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/alias/SpeciesAliasXmlParserTest.java
index b3832c814b501ed0551fa01473278db1a9de6d3b..dc9211475cbcd050b666b9c883529098c9604a38 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/alias/SpeciesAliasXmlParserTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/alias/SpeciesAliasXmlParserTest.java
@@ -10,7 +10,7 @@ import static org.mockito.Mockito.when;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -30,7 +30,7 @@ import lcsb.mapviewer.model.map.species.GenericProtein;
 import lcsb.mapviewer.model.map.species.Species;
 
 public class SpeciesAliasXmlParserTest extends CellDesignerTestFunctions {
-  static Logger logger = Logger.getLogger(SpeciesAliasXmlParser.class);
+  static Logger logger = LogManager.getLogger(SpeciesAliasXmlParser.class);
 
   Model model;
   private SpeciesAliasXmlParser parser;
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/annotation/RestAnnotationParserTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/annotation/RestAnnotationParserTest.java
index ad764b200dfa7d20cbce00925c55d6953f058469..f894db095527a5f0cad86dbfd635c15733f4d055 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/annotation/RestAnnotationParserTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/annotation/RestAnnotationParserTest.java
@@ -10,7 +10,7 @@ import java.lang.reflect.Field;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.apache.xerces.dom.DocumentImpl;
 import org.junit.After;
 import org.junit.Before;
@@ -34,7 +34,7 @@ import lcsb.mapviewer.model.map.species.GenericProtein;
 import lcsb.mapviewer.model.map.species.Species;
 
 public class RestAnnotationParserTest extends CellDesignerTestFunctions {
-  Logger logger = Logger.getLogger(RestAnnotationParserTest.class);
+  Logger logger = LogManager.getLogger(RestAnnotationParserTest.class);
 
   @Before
   public void setUp() throws Exception {
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/compartment/CompartmentCollectionXmlParserTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/compartment/CompartmentCollectionXmlParserTest.java
index c8964895b9a20d42da40ca768741e7416032964b..9e851e9a7a7ec9b941ec8e99bf05abb815261775 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/compartment/CompartmentCollectionXmlParserTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/compartment/CompartmentCollectionXmlParserTest.java
@@ -8,7 +8,7 @@ import static org.junit.Assert.fail;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -21,7 +21,7 @@ import lcsb.mapviewer.converter.model.celldesigner.structure.CellDesignerCompart
 import lcsb.mapviewer.model.map.compartment.Compartment;
 
 public class CompartmentCollectionXmlParserTest extends CellDesignerTestFunctions {
-	static Logger									 logger					= Logger.getLogger(CompartmentCollectionXmlParserTest.class);
+	static Logger									 logger					= LogManager.getLogger(CompartmentCollectionXmlParserTest.class);
 
 	int														 aliasIdCounter	= 0;
 
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/compartment/CompartmentParserTests.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/compartment/CompartmentParserTests.java
index 8bdf581b7b9c5a335fc9c69117b1ad5304aff666..fa8566b724de60000b67cf287449da2dc5c53756 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/compartment/CompartmentParserTests.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/compartment/CompartmentParserTests.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.model.celldesigner.compartment;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -12,7 +12,7 @@ import lcsb.mapviewer.converter.model.celldesigner.CellDesignerTestFunctions;
 import lcsb.mapviewer.model.map.model.Model;
 
 public class CompartmentParserTests extends CellDesignerTestFunctions {
-	Logger logger = Logger.getLogger(CompartmentParserTests.class);
+	Logger logger = LogManager.getLogger(CompartmentParserTests.class);
 
 	@Before
 	public void setUp() throws Exception {
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/compartment/CompartmentXmlParserTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/compartment/CompartmentXmlParserTest.java
index 674077ea546d3fd9033d55a4cb62bc13a9a001c7..08340b92ebff8bebd1590c667db5eeee74cc0528 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/compartment/CompartmentXmlParserTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/compartment/CompartmentXmlParserTest.java
@@ -10,7 +10,7 @@ import java.io.StringReader;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -26,7 +26,7 @@ import lcsb.mapviewer.converter.model.celldesigner.structure.CellDesignerCompart
 import lcsb.mapviewer.model.map.compartment.Compartment;
 
 public class CompartmentXmlParserTest extends CellDesignerTestFunctions {
-  protected Logger logger = Logger.getLogger(ProteinXmlParserTest.class.getName());
+  protected Logger logger = LogManager.getLogger(ProteinXmlParserTest.class.getName());
 
   CompartmentXmlParser compartmentParser;
   CellDesignerElementCollection elements;
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/function/FunctionCollectionXmlParserTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/function/FunctionCollectionXmlParserTest.java
index dd5fbd5af76b1de7df929a65d5b7b12522a81265..618f799af2ff15208264d96aa59e9dbcd416b797 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/function/FunctionCollectionXmlParserTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/function/FunctionCollectionXmlParserTest.java
@@ -4,7 +4,7 @@ import static org.junit.Assert.assertEquals;
 
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 
 import lcsb.mapviewer.common.comparator.SetComparator;
@@ -13,7 +13,7 @@ import lcsb.mapviewer.model.map.kinetics.SbmlFunction;
 import lcsb.mapviewer.model.map.kinetics.SbmlFunctionComparator;
 
 public class FunctionCollectionXmlParserTest extends CellDesignerTestFunctions {
-  Logger logger = Logger.getLogger(FunctionCollectionXmlParserTest.class);
+  Logger logger = LogManager.getLogger(FunctionCollectionXmlParserTest.class);
 
   @Test
   public void testToXml() throws Exception {
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/function/FunctionXmlParserTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/function/FunctionXmlParserTest.java
index 35cc01fa9379bb09814aa1b5b53a860291a2f709..a06fcc19c3421a95326435809c5e2b2fb73a6c4d 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/function/FunctionXmlParserTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/function/FunctionXmlParserTest.java
@@ -6,7 +6,7 @@ import static org.junit.Assert.assertTrue;
 
 import java.io.IOException;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 
 import lcsb.mapviewer.common.exception.InvalidXmlSchemaException;
@@ -15,7 +15,7 @@ import lcsb.mapviewer.model.map.kinetics.SbmlFunction;
 import lcsb.mapviewer.model.map.kinetics.SbmlFunctionComparator;
 
 public class FunctionXmlParserTest extends CellDesignerTestFunctions {
-  Logger logger = Logger.getLogger(FunctionXmlParserTest.class);
+  Logger logger = LogManager.getLogger(FunctionXmlParserTest.class);
 
   FunctionXmlParser parser = new FunctionXmlParser();
 
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/AbstractCellDesignerAliasConverterTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/AbstractCellDesignerAliasConverterTest.java
index cdd961ee2998232ff69a9abf054a2352641e7401..97e3e031bdd52e0ca074a59cba4206be27b2152f 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/AbstractCellDesignerAliasConverterTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/AbstractCellDesignerAliasConverterTest.java
@@ -2,13 +2,14 @@ package lcsb.mapviewer.converter.model.celldesigner.geometry;
 
 import static org.junit.Assert.assertEquals;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mockito;
 
-import lcsb.mapviewer.common.EventStorageLoggerAppender;
+
 import lcsb.mapviewer.common.geometry.LineTransformation;
+import lcsb.mapviewer.converter.model.celldesigner.CellDesignerTestFunctions;
 import lcsb.mapviewer.converter.model.celldesigner.geometry.helper.CellDesignerEllipseTransformation;
 import lcsb.mapviewer.converter.model.celldesigner.geometry.helper.CellDesignerPolygonTransformation;
 import lcsb.mapviewer.converter.model.celldesigner.geometry.helper.CellDesignerRectangleTransformation;
@@ -16,8 +17,8 @@ import lcsb.mapviewer.model.map.species.GenericProtein;
 import lcsb.mapviewer.model.map.species.Protein;
 import lcsb.mapviewer.model.map.species.Species;
 
-public class AbstractCellDesignerAliasConverterTest {
-  Logger logger = Logger.getLogger(AbstractCellDesignerAliasConverterTest.class);
+public class AbstractCellDesignerAliasConverterTest extends CellDesignerTestFunctions {
+  Logger logger = LogManager.getLogger(AbstractCellDesignerAliasConverterTest.class);
 
   AbstractCellDesignerAliasConverter<Species> converter;
 
@@ -29,17 +30,11 @@ public class AbstractCellDesignerAliasConverterTest {
 
   @Test
   public void testGetAnchorPointCoordinatesForInvalidImplementation() {
-    EventStorageLoggerAppender appender = new EventStorageLoggerAppender();
-    Logger.getRootLogger().addAppender(appender);
-    try {
       Protein alias = new GenericProtein("id");
       alias.setWidth(1);
       alias.setHeight(1);
       converter.getAnchorPointCoordinates(alias, 0);
-      assertEquals(1, appender.getWarnings().size());
-    } finally {
-      Logger.getRootLogger().removeAppender(appender);
-    }
+      assertEquals(1, getWarnings().size());
   }
 
   @Test
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/ComplexConverterTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/ComplexConverterTest.java
index 7a5ab0420b6546bd18d5cc45c073131f2f7b1eb9..8640d60688e95b43fa731b91a6dd0a5a6a5ef18e 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/ComplexConverterTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/ComplexConverterTest.java
@@ -4,7 +4,7 @@ import static org.junit.Assert.assertEquals;
 
 import java.awt.geom.Point2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import lcsb.mapviewer.converter.model.celldesigner.geometry.helper.CellDesignerA
 import lcsb.mapviewer.model.map.species.Complex;
 
 public class ComplexConverterTest extends CellDesignerTestFunctions {
-  static Logger logger = Logger.getLogger(ComplexConverterTest.class);
+  static Logger logger = LogManager.getLogger(ComplexConverterTest.class);
 
   @Before
   public void setUp() throws Exception {
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/GeneCellDesignerAliasConverterTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/GeneCellDesignerAliasConverterTest.java
index d6b0d2d19bd43be635f9e44576ef8cbbf28fce47..e4dfc700123480074182d004067613362362655c 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/GeneCellDesignerAliasConverterTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/GeneCellDesignerAliasConverterTest.java
@@ -6,7 +6,7 @@ import static org.junit.Assert.assertNotNull;
 import java.awt.geom.PathIterator;
 import java.awt.geom.Point2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 
 import lcsb.mapviewer.model.map.model.Model;
@@ -15,7 +15,7 @@ import lcsb.mapviewer.model.map.species.Gene;
 
 public class GeneCellDesignerAliasConverterTest {
 
-  Logger logger = Logger.getLogger(GeneCellDesignerAliasConverterTest.class);
+  Logger logger = LogManager.getLogger(GeneCellDesignerAliasConverterTest.class);
 
   GeneCellDesignerAliasConverter converter = new GeneCellDesignerAliasConverter(false);
 
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/ProteinCellDesignerAliasConverterTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/ProteinCellDesignerAliasConverterTest.java
index dd97e7efc725107e0e1b61dad3648fb601eaac9d..372e6f5812018eb347de3d264f3e6e8014b17050 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/ProteinCellDesignerAliasConverterTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/ProteinCellDesignerAliasConverterTest.java
@@ -6,7 +6,7 @@ import static org.junit.Assert.fail;
 
 import java.awt.geom.Point2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.mockito.Mockito;
 
@@ -17,7 +17,7 @@ import lcsb.mapviewer.model.map.species.GenericProtein;
 import lcsb.mapviewer.model.map.species.Protein;
 
 public class ProteinCellDesignerAliasConverterTest {
-  Logger logger = Logger.getLogger(ProteinCellDesignerAliasConverterTest.class);
+  Logger logger = LogManager.getLogger(ProteinCellDesignerAliasConverterTest.class);
 
   ProteinCellDesignerAliasConverter converter = new ProteinCellDesignerAliasConverter(false);
 
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/ProteinConverterTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/ProteinConverterTest.java
index e16751241a1f39ac4481125f94b0308193b257a3..d0b5bd31465e272d9b2c5d0ac6135a4823c22e76 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/ProteinConverterTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/ProteinConverterTest.java
@@ -4,7 +4,7 @@ import static org.junit.Assert.assertEquals;
 
 import java.awt.geom.Point2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -16,7 +16,7 @@ import lcsb.mapviewer.model.map.species.GenericProtein;
 import lcsb.mapviewer.model.map.species.Protein;
 
 public class ProteinConverterTest extends CellDesignerTestFunctions {
-  static Logger logger = Logger.getLogger(ProteinConverterTest.class);
+  static Logger logger = LogManager.getLogger(ProteinConverterTest.class);
 
   @Before
   public void setUp() throws Exception {
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerLineTransformationTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerLineTransformationTest.java
index 94d9a0f2d37d8e250f1610e38f9cb88da81861a6..6e670669e9ed0c3e094f547a76a8144bce29e67c 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerLineTransformationTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerLineTransformationTest.java
@@ -9,7 +9,7 @@ import java.awt.geom.Point2D;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -19,7 +19,7 @@ import lcsb.mapviewer.common.geometry.PointTransformation;
 import lcsb.mapviewer.model.graphics.PolylineData;
 
 public class CellDesignerLineTransformationTest {
-	Logger												 logger							 = Logger.getLogger(CellDesignerLineTransformationTest.class);
+	Logger												 logger							 = LogManager.getLogger(CellDesignerLineTransformationTest.class);
 
 	CellDesignerLineTransformation lineTransformation	 = new CellDesignerLineTransformation();
 	PointTransformation						 pointTransformation = new PointTransformation();
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerPointTransformationTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerPointTransformationTest.java
index f2d00d9edd5131478d537fe0039fe4ebcc68eff7..c7980de1da623565a8169d4ea6ae83889b0b9374 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerPointTransformationTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/geometry/helper/CellDesignerPointTransformationTest.java
@@ -5,13 +5,13 @@ import static org.junit.Assert.assertTrue;
 
 import java.awt.geom.Point2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
 public class CellDesignerPointTransformationTest {
-	Logger logger = Logger.getLogger(CellDesignerPointTransformationTest .class);
+	Logger logger = LogManager.getLogger(CellDesignerPointTransformationTest .class);
 
 	CellDesignerPointTransformation	pt	= new CellDesignerPointTransformation();
 
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/reaction/KineticsXmlParserTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/reaction/KineticsXmlParserTest.java
index d0c27562238ea049bc117260a8207e1a91bcaad7..5c98fbdfc84574e21f0be104cadc711a6cc21b35 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/reaction/KineticsXmlParserTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/reaction/KineticsXmlParserTest.java
@@ -9,7 +9,7 @@ import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.w3c.dom.Node;
 
@@ -25,7 +25,7 @@ import lcsb.mapviewer.model.map.species.Element;
 import lcsb.mapviewer.model.map.species.GenericProtein;
 
 public class KineticsXmlParserTest extends CellDesignerTestFunctions {
-  Logger logger = Logger.getLogger(KineticsXmlParserTest.class);
+  Logger logger = LogManager.getLogger(KineticsXmlParserTest.class);
 
   @Test
   public void testParseElements() throws InvalidXmlSchemaException, IOException {
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ModificationReactionTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ModificationReactionTest.java
index 9e7e4627c495e4b991615f7ca25307fd4337be4f..a16a83d1801c622edee8b85d202bd7e09a00b7ad 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ModificationReactionTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ModificationReactionTest.java
@@ -4,7 +4,7 @@ import static org.junit.Assert.assertEquals;
 
 import java.io.FileInputStream;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -22,7 +22,7 @@ import lcsb.mapviewer.model.map.reaction.type.UnknownCatalysisReaction;
 import lcsb.mapviewer.model.map.reaction.type.UnknownInhibitionReaction;
 
 public class ModificationReactionTest extends CellDesignerTestFunctions {
-  Logger logger = Logger.getLogger(ModificationReactionTest.class);
+  Logger logger = LogManager.getLogger(ModificationReactionTest.class);
 
   @Before
   public void setUp() throws Exception {
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionCollectionXmlParserTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionCollectionXmlParserTest.java
index 07bf29dd76f58cfd10009a357d31631b0196694b..95f92dda20213ad0f904451f209678623e217fb8 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionCollectionXmlParserTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionCollectionXmlParserTest.java
@@ -6,7 +6,7 @@ import static org.junit.Assert.assertNotNull;
 import java.awt.geom.Line2D;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -21,7 +21,7 @@ import lcsb.mapviewer.model.map.species.GenericProtein;
 import lcsb.mapviewer.model.map.species.Species;
 
 public class ReactionCollectionXmlParserTest extends CellDesignerTestFunctions {
-	Logger logger = Logger.getLogger(ReactionCollectionXmlParserTest.class);
+	Logger logger = LogManager.getLogger(ReactionCollectionXmlParserTest.class);
 
 	@Before
 	public void setUp() throws Exception {
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionParserTests.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionParserTests.java
index dcac2c483d416892ec704f47647f460f48d751b5..d0359cf5690cb302d6b6267abf7ee26d95df468d 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionParserTests.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionParserTests.java
@@ -12,7 +12,7 @@ import java.io.ByteArrayInputStream;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -59,7 +59,7 @@ import lcsb.mapviewer.model.map.species.Species;
 
 public class ReactionParserTests extends CellDesignerTestFunctions {
 
-  private Logger logger = Logger.getLogger(ReactionParserTests.class.getName());;
+  private Logger logger = LogManager.getLogger(ReactionParserTests.class.getName());;
   ReactionXmlParser parser;
   CellDesignerElementCollection elements;
 
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionToXmlTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionToXmlTest.java
index 3e6ca41a0a1e8c558cff93c437fc18e7fff58db2..b12eb7eabc7d0fb820d3b2a0ab4ec146f853a469 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionToXmlTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/reaction/ReactionToXmlTest.java
@@ -8,15 +8,16 @@ import java.awt.geom.Point2D;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.Test;
 
-import lcsb.mapviewer.common.EventStorageLoggerAppender;
+
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.converter.model.celldesigner.CellDesignerElementCollection;
+import lcsb.mapviewer.converter.model.celldesigner.CellDesignerTestFunctions;
 import lcsb.mapviewer.model.graphics.PolylineData;
 import lcsb.mapviewer.model.map.InconsistentModelException;
 import lcsb.mapviewer.model.map.model.Model;
@@ -34,8 +35,8 @@ import lcsb.mapviewer.model.map.species.Complex;
 import lcsb.mapviewer.model.map.species.GenericProtein;
 import lcsb.mapviewer.model.map.species.Species;
 
-public class ReactionToXmlTest {
-  Logger logger = Logger.getLogger(ReactionToXmlTest.class);
+public class ReactionToXmlTest extends CellDesignerTestFunctions {
+  Logger logger = LogManager.getLogger(ReactionToXmlTest.class);
 
   CellDesignerElementCollection elements;
   ReactionToXml toXmlParser;
@@ -100,15 +101,10 @@ public class ReactionToXmlTest {
     reaction.addModifier(modifier2);
     reaction.addNode(andOperator);
 
-    EventStorageLoggerAppender appender = new EventStorageLoggerAppender();
-    Logger.getRootLogger().addAppender(appender);
-
-    try {
+    int warningCount = getWarnings().size();
+        
       toXmlParser.toXml(reaction);
-      assertEquals(2, appender.getWarnings().size());
-    } finally {
-      Logger.getRootLogger().removeAppender(appender);
-    }
+      assertEquals(2, getWarnings().size()- warningCount);
 
   }
 
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/AntisenseRnaXmlParserTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/AntisenseRnaXmlParserTest.java
index 32345985cb967c8fc413a3b37eb08beb398dd59d..362c8dcff3065486b3d5afa9e909ce5b6be14edd 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/AntisenseRnaXmlParserTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/AntisenseRnaXmlParserTest.java
@@ -9,7 +9,7 @@ import java.io.StringReader;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -26,7 +26,7 @@ import lcsb.mapviewer.converter.model.celldesigner.structure.fields.CellDesigner
 import lcsb.mapviewer.converter.model.celldesigner.structure.fields.ModificationType;
 
 public class AntisenseRnaXmlParserTest extends CellDesignerTestFunctions {
-  protected Logger logger = Logger.getLogger(AntisenseRnaXmlParserTest.class.getName());
+  protected Logger logger = LogManager.getLogger(AntisenseRnaXmlParserTest.class.getName());
 
   AntisenseRnaXmlParser antisenseRnaParser;
   String testAntisenseRnaFile = "testFiles" + System.getProperty("file.separator") + "xmlNodeTestExamples"
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/ComplexParserTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/ComplexParserTest.java
index 10d6269550aa1ae0cd3a555d0a1022044fc4343c..b4eac9820746375d87c182e0db155670a2c63a62 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/ComplexParserTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/ComplexParserTest.java
@@ -10,7 +10,7 @@ import static org.mockito.Mockito.when;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -30,7 +30,7 @@ import lcsb.mapviewer.model.map.model.ModelFullIndexed;
 import lcsb.mapviewer.model.map.species.Complex;
 
 public class ComplexParserTest extends CellDesignerTestFunctions {
-	Logger												logger									= Logger.getLogger(ComplexParserTest.class);
+	Logger												logger									= LogManager.getLogger(ComplexParserTest.class);
 
 	String												testSpeciesId						= "s3";
 	String												testAliasId							= "sa3";
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/GeneXmlParserTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/GeneXmlParserTest.java
index bdc11d6cca90bc2b2cafcdacc68c6384a04123f6..dd0cba2e9988fbffe00e502e7b6eff7e506fa38c 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/GeneXmlParserTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/GeneXmlParserTest.java
@@ -10,7 +10,7 @@ import java.io.StringReader;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -29,7 +29,7 @@ import lcsb.mapviewer.model.map.species.field.ModificationSite;
 import lcsb.mapviewer.model.map.species.field.ModificationState;
 
 public class GeneXmlParserTest extends CellDesignerTestFunctions {
-  Logger logger = Logger.getLogger(GeneXmlParserTest.class.getName());
+  Logger logger = LogManager.getLogger(GeneXmlParserTest.class.getName());
 
   GeneXmlParser geneParser;
   String testGeneFile = "testFiles" + System.getProperty("file.separator") + "xmlNodeTestExamples"
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/ProteinMappingTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/ProteinMappingTest.java
index 76fff7ecd1c6342f782d706dfb8423333722afa3..6951d37c7c5d97a38fd435d02bf8de7b9d61824f 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/ProteinMappingTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/ProteinMappingTest.java
@@ -5,7 +5,7 @@ import static org.junit.Assert.fail;
 
 import java.lang.reflect.Field;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -17,7 +17,7 @@ import lcsb.mapviewer.converter.model.celldesigner.structure.CellDesignerProtein
 import lcsb.mapviewer.model.map.species.TruncatedProtein;
 
 public class ProteinMappingTest {
-	Logger logger = Logger.getLogger(ProteinMappingTest.class);
+	Logger logger = LogManager.getLogger(ProteinMappingTest.class);
 
 	@AfterClass
 	public static void tearDownAfterClass() throws Exception {
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/ProteinXmlParserTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/ProteinXmlParserTest.java
index 9c5ca3758170dd3a8f2e9e9fa08aca3ed459d826..883dba66a61a270fd006320b788cdf9df85e6c16 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/ProteinXmlParserTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/ProteinXmlParserTest.java
@@ -9,7 +9,7 @@ import java.io.StringReader;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -28,7 +28,7 @@ import lcsb.mapviewer.converter.model.celldesigner.structure.CellDesignerProtein
 import lcsb.mapviewer.model.map.species.Protein;
 
 public class ProteinXmlParserTest extends CellDesignerTestFunctions {
-  Logger logger = Logger.getLogger(ProteinXmlParserTest.class.getName());
+  Logger logger = LogManager.getLogger(ProteinXmlParserTest.class.getName());
 
   ProteinXmlParser proteinParser;
   String testProteinFile = "testFiles" + System.getProperty("file.separator") + "xmlNodeTestExamples"
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/RnaXmlParserTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/RnaXmlParserTest.java
index dfc6456045a088430a8951941a1a20850ac05500..5dffc0f9bc2508a54a96079c1b19796b179df012 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/RnaXmlParserTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/RnaXmlParserTest.java
@@ -10,7 +10,7 @@ import java.io.StringReader;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -25,7 +25,7 @@ import lcsb.mapviewer.converter.model.celldesigner.CellDesignerTestFunctions;
 import lcsb.mapviewer.converter.model.celldesigner.structure.CellDesignerRna;
 
 public class RnaXmlParserTest extends CellDesignerTestFunctions {
-  protected Logger logger = Logger.getLogger(RnaXmlParserTest.class.getName());
+  protected Logger logger = LogManager.getLogger(RnaXmlParserTest.class.getName());
 
   RnaXmlParser rnaParser;
   String testRnaFile = "testFiles" + System.getProperty("file.separator") + "xmlNodeTestExamples"
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/SpeciesCollectionTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/SpeciesCollectionTest.java
index a1d9e754485445b601bef1f4db75505380f6f03a..f2d49cb9668894f63c365f95781666e7f9cca12d 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/SpeciesCollectionTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/SpeciesCollectionTest.java
@@ -5,7 +5,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -19,7 +19,7 @@ import lcsb.mapviewer.converter.model.celldesigner.structure.CellDesignerSpecies
 import lcsb.mapviewer.model.map.species.Species;
 
 public class SpeciesCollectionTest {
-	Logger logger = Logger.getLogger(SpeciesCollectionTest.class);
+	Logger logger = LogManager.getLogger(SpeciesCollectionTest.class);
 
 	@Before
 	public void setUp() throws Exception {
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/SpeciesCollectionXmlParserTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/SpeciesCollectionXmlParserTest.java
index 3d781303f973c620956ca7631f10876225239500..59f21cebeb0b3fc392e51f81d04aafacd0184261 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/SpeciesCollectionXmlParserTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/SpeciesCollectionXmlParserTest.java
@@ -9,7 +9,7 @@ import java.lang.reflect.Field;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -37,7 +37,7 @@ import lcsb.mapviewer.model.map.species.Rna;
 import lcsb.mapviewer.model.map.species.Species;
 
 public class SpeciesCollectionXmlParserTest extends CellDesignerTestFunctions {
-	static Logger									logger											= Logger.getLogger(SpeciesCollectionXmlParserTest.class);
+	static Logger									logger											= LogManager.getLogger(SpeciesCollectionXmlParserTest.class);
 	Model													model												= new ModelFullIndexed(null);
 	SpeciesCollectionXmlParser		parser											= null;
 
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/SpeciesSbmlParserTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/SpeciesSbmlParserTest.java
index 6e90f40f00d92409c973b74045dc0dd2544231b4..7aa15cd2a33504f0a1dbbcf0585dd4d592325236 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/SpeciesSbmlParserTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/species/SpeciesSbmlParserTest.java
@@ -11,7 +11,7 @@ import java.io.StringReader;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -49,7 +49,7 @@ import lcsb.mapviewer.model.map.species.Species;
 
 public class SpeciesSbmlParserTest extends CellDesignerTestFunctions {
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(SpeciesSbmlParserTest.class.getName());
+  private Logger logger = LogManager.getLogger(SpeciesSbmlParserTest.class.getName());
 
   SpeciesSbmlParser parser;
 
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/structure/ElementTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/structure/ElementTest.java
index 015b044475d811f90076767194ee8570ddf540c9..6efd14fc708f9a54e98466b821e59c0698315113 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/structure/ElementTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/structure/ElementTest.java
@@ -8,7 +8,7 @@ import static org.junit.Assert.fail;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -20,7 +20,7 @@ import lcsb.mapviewer.model.map.MiriamData;
 import lcsb.mapviewer.model.map.MiriamType;
 
 public class ElementTest extends CellDesignerTestFunctions {
-	Logger logger = Logger.getLogger(ElementTest.class);
+	Logger logger = LogManager.getLogger(ElementTest.class);
 
 	@Before
 	public void setUp() throws Exception {
diff --git a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/structure/RnaTest.java b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/structure/RnaTest.java
index b1f26667801e48c59f5f781f8fecae1a0a6d72bd..ee2eafcb481aaa3d2ab2cd696ba43b3be5e1c23b 100644
--- a/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/structure/RnaTest.java
+++ b/converter-CellDesigner/src/test/java/lcsb/mapviewer/converter/model/celldesigner/structure/RnaTest.java
@@ -9,7 +9,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.commons.lang3.SerializationUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -21,7 +21,7 @@ import lcsb.mapviewer.model.map.species.Rna;
 import lcsb.mapviewer.model.map.species.field.ModificationState;
 
 public class RnaTest {
-  Logger logger = Logger.getLogger(RnaTest.class);
+  Logger logger = LogManager.getLogger(RnaTest.class);
 
   @Before
   public void setUp() throws Exception {
diff --git a/converter-CellDesigner/src/test/resources/log4j.properties b/converter-CellDesigner/src/test/resources/log4j.properties
deleted file mode 100644
index aaee20a0ccf7c7fa6e25471d9a6f189ba2661d95..0000000000000000000000000000000000000000
--- a/converter-CellDesigner/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,47 +0,0 @@
-#Set root logger 's level and its appender to an appender called CONSOLE which is defined below.
-log4j.rootLogger=info, CONSOLE
-
-#Set the behavior of the CONSOLE appender 
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-#log4j.appender.CONSOLE.layout.ConversionPattern=%m%n
-
-
-#Set the behavior of the FILE appender 
-log4j.appender.R=org.apache.log4j.FileAppender
-log4j.appender.R.File=${catalina.home}/logs/MapViewer.log
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-
-
-log4j.logger.org.springframework=warn
-log4j.logger.org.hibernate=warn
-log4j.logger.lcsb=debug
-log4j.logger.lcsb.mapviewer.common.Comparator=info
-
-log4j.logger.lcsb.mapviewer.model.map.species.ElementComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.SpeciesComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.SimpleMoleculeComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.ProteinComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.AssociatedElementComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.ComplexSpeciesComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.AssociatedElementComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.PhenotypeComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.fields.AssociatedElementComparator=info
-
-log4j.logger.lcsb.mapviewer.model.map.layout.alias.SpeciesAliasComparator=info
-log4j.logger.lcsb.mapviewer.model.map.layout.alias.AliasComparator=info
-log4j.logger.lcsb.mapviewer.model.map.layout.alias.ComplexAliasComparator=info
-log4j.logger.lcsb.mapviewer.model.map.layout.alias.CompartmentAliasComparator=info
-
-log4j.logger.lcsb.mapviewer.model.map.reaction.ReactionNodeComparator=info
-log4j.logger.lcsb.mapviewer.model.map.reaction.ReactionComparator=info
-log4j.logger.lcsb.mapviewer.model.map.reaction.NodeOperatorComparator=info
-log4j.logger.lcsb.mapviewer.model.map.reaction.AbstractNodeComparator=info
-
-log4j.logger.lcsb.mapviewer.model.map.model.ModelComparator=info
-
-log4j.logger.lcsb.mapviewer.model.graphics.PolylineDataComparator=info
-
-log4j.logger.lcsb.mapviewer.model.map.kinetics.SbmlUnitComparator = info
\ No newline at end of file
diff --git a/converter-CellDesigner/src/test/resources/log4j2.properties b/converter-CellDesigner/src/test/resources/log4j2.properties
new file mode 100644
index 0000000000000000000000000000000000000000..b5eaa32682d177bf266eb6ed4831b4e8f4b9135d
--- /dev/null
+++ b/converter-CellDesigner/src/test/resources/log4j2.properties
@@ -0,0 +1,25 @@
+rootLogger.level = INFO
+appenders = console
+
+appender.console.type = Console
+appender.console.name = STDOUT
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %d %5p [%t] (%F:%L) - %m%n
+
+rootLogger.appenderRefs = console
+
+rootLogger.appenderRef.console.ref = STDOUT
+
+logger.minerva.name = lcsb
+logger.minerva.level = debug
+logger.minerva-persist.name = lcsb.mapviewer.persist.DbUtils
+logger.minerva-persist.level = info
+logger.minerva-cache.name = lcsb.mapviewer.annotation.cache
+logger.minerva-cache.level = info
+
+
+logger.springframework.name = org.springframework
+logger.springframework.level = warn
+
+logger.hibernate.name = org.hibernate
+logger.hibernate.level = warn
diff --git a/converter-SBGNML/pom.xml b/converter-SBGNML/pom.xml
index be13fd35bc77adfffb74345f17c3420ec740d86d..1d761858303d2df02eee7b70aa59f9b346b9ad63 100644
--- a/converter-SBGNML/pom.xml
+++ b/converter-SBGNML/pom.xml
@@ -91,6 +91,24 @@
 			<version>${libsbgn.version}</version>
 		</dependency>
 
+		<!-- Log4J2 -->
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-api</artifactId>
+			<version>${log4j2.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-core</artifactId>
+			<version>${log4j2.version}</version>
+		</dependency>
+		<!-- Spring uses commons-logging, so: https://stackoverflow.com/a/41475146/1127920 -->
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-jcl</artifactId>
+			<version>2.11.2</version>
+		</dependency>
+
 		<!-- Commons CLI by Apache -->
 		<dependency>
 			<groupId>commons-cli</groupId>
diff --git a/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlConverter.java b/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlConverter.java
index bca93fddd2fe68141d3d6443bec826790b94c379..529dcd0c59a95200fdc089c828ddb87b8d500ffc 100644
--- a/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlConverter.java
+++ b/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlConverter.java
@@ -8,13 +8,15 @@ import javax.xml.bind.JAXBException;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.text.StringEscapeUtils;
-import org.apache.log4j.Logger;
-import org.apache.log4j.spi.LoggingEvent;
+import org.apache.logging.log4j.*;
+import org.apache.logging.log4j.core.LogEvent;
+
 import org.sbgn.SbgnUtil;
 import org.sbgn.bindings.Sbgn;
 
-import lcsb.mapviewer.common.EventStorageLoggerAppender;
+
 import lcsb.mapviewer.common.MimeType;
+import lcsb.mapviewer.common.MinervaLoggerAppender;
 import lcsb.mapviewer.converter.ConverterException;
 import lcsb.mapviewer.converter.ConverterParams;
 import lcsb.mapviewer.converter.Converter;
@@ -40,23 +42,20 @@ public class SbgnmlXmlConverter extends Converter {
 
   @Override
   public String model2String(Model model) throws ConverterException {
-    EventStorageLoggerAppender appender = new EventStorageLoggerAppender();
+    MinervaLoggerAppender appender = MinervaLoggerAppender.createAppender();
     Sbgn exportedData;
     StringBuilder notes = new StringBuilder();
     try {
-      Logger.getRootLogger().addAppender(appender);
       SbgnmlXmlExporter exporter = new SbgnmlXmlExporter();
       exportedData = exporter.toSbgnml(model);
       if (!appender.getWarnings().isEmpty()) {
-        for (LoggingEvent event : appender.getWarnings()) {
-          if (event.getMessage() instanceof String) {
-            notes.append("\n");
-            notes.append((String) event.getMessage());
-          }
+        for (LogEvent event : appender.getWarnings()) {
+          notes.append("\n");
+          notes.append(event.getMessage().getFormattedMessage());
         }
       }
     } finally {
-      Logger.getRootLogger().removeAppender(appender);
+      MinervaLoggerAppender.unregisterLogEventStorage(appender);
     }
     try {
       File tempFile = File.createTempFile("sbgnmlExportTempFile", ".tmp");
diff --git a/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlExporter.java b/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlExporter.java
index e42c08201cb52bd7f9799fa5a701f2e63dbdbe79..a9866f09a9a144d9fa7111e0395417e1738bf3d6 100644
--- a/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlExporter.java
+++ b/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlExporter.java
@@ -11,7 +11,7 @@ import java.util.stream.Collectors;
 
 import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.sbgn.ArcClazz;
 import org.sbgn.GlyphClazz;
 import org.sbgn.Language;
@@ -91,7 +91,7 @@ public class SbgnmlXmlExporter {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(SbgnmlXmlExporter.class.getName());
+  private Logger logger = LogManager.getLogger(SbgnmlXmlExporter.class.getName());
 
   /**
    * Counter of the arcs parsed so far, used in generating arc's id.
diff --git a/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParser.java b/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParser.java
index 2161a4a2ea516b6ce42cd19bba323053ee21a672..d757847507a1d64bf365f99670cd5018794c1b86 100644
--- a/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParser.java
+++ b/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParser.java
@@ -7,7 +7,7 @@ import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.sbgn.ArcClazz;
 import org.sbgn.GlyphClazz;
 import org.sbgn.SbgnUtil;
@@ -84,7 +84,7 @@ public class SbgnmlXmlParser {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(SbgnmlXmlParser.class.getName());
+  private Logger logger = LogManager.getLogger(SbgnmlXmlParser.class.getName());
 
   /**
    * List of all processes to be parsed.
diff --git a/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/console/SbgnmlConsoleConverter.java b/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/console/SbgnmlConsoleConverter.java
index 8ac8331b5b57f5a8a00cfd5754dbc47a1d739128..2c0a7292a87f56544be1dda88a7f5ddcba3e5581 100644
--- a/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/console/SbgnmlConsoleConverter.java
+++ b/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/console/SbgnmlConsoleConverter.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.model.sbgnml.console;
 import java.io.FileNotFoundException;
 
 import lcsb.mapviewer.converter.ConverterException;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.converter.ConverterParams;
 import lcsb.mapviewer.converter.Converter;
@@ -25,7 +25,7 @@ public class SbgnmlConsoleConverter {
 	/**
 	 * Default class logger.
 	 */
-	private final Logger		 logger	= Logger.getLogger(SbgnmlConsoleConverter.class.getName());
+	private final Logger		 logger	= LogManager.getLogger(SbgnmlConsoleConverter.class.getName());
 
 	/**
 	 * Options from the input.
diff --git a/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/console/SbgnmlRunOptions.java b/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/console/SbgnmlRunOptions.java
index 3889115cfe6ceb49b14b23a68b2872ea9ce92318..31dc6a716ebff8abeb4e9be36a906ebc068e109c 100644
--- a/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/console/SbgnmlRunOptions.java
+++ b/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/console/SbgnmlRunOptions.java
@@ -8,7 +8,7 @@ import org.apache.commons.cli.Option;
 import org.apache.commons.cli.OptionBuilder;
 import org.apache.commons.cli.Options;
 import org.apache.commons.cli.ParseException;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * This class is used to parse and store input data for {@link SbgnmlConsoleConverter}
@@ -22,7 +22,7 @@ public class SbgnmlRunOptions {
 	/**
 	 * Default class logger.
 	 */
-	private final Logger logger = Logger.getLogger(SbgnmlRunOptions.class.getName());
+	private final Logger logger = LogManager.getLogger(SbgnmlRunOptions.class.getName());
 
 	/**
 	 * What is the abbreviation of help option.
diff --git a/converter-SBGNML/src/main/resources/log4j.properties b/converter-SBGNML/src/main/resources/log4j.properties
deleted file mode 100644
index e2e441d6b2ebef0295c3d5303f3f26163abe7c18..0000000000000000000000000000000000000000
--- a/converter-SBGNML/src/main/resources/log4j.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-#Set root logger 's level and its appender to an appender called CONSOLE which is defined below.
-log4j.rootLogger=warn, CONSOLE
-
-#Set the behavior of the CONSOLE appender 
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-#log4j.appender.CONSOLE.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-log4j.appender.CONSOLE.layout.ConversionPattern=%m%n
-
-log4j.logger.org.springframework=warn
-log4j.logger.org.hibernate=warn
-log4j.logger.lcsb=warn
\ No newline at end of file
diff --git a/converter-SBGNML/src/main/resources/log4j2.properties b/converter-SBGNML/src/main/resources/log4j2.properties
new file mode 100644
index 0000000000000000000000000000000000000000..b5eaa32682d177bf266eb6ed4831b4e8f4b9135d
--- /dev/null
+++ b/converter-SBGNML/src/main/resources/log4j2.properties
@@ -0,0 +1,25 @@
+rootLogger.level = INFO
+appenders = console
+
+appender.console.type = Console
+appender.console.name = STDOUT
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %d %5p [%t] (%F:%L) - %m%n
+
+rootLogger.appenderRefs = console
+
+rootLogger.appenderRef.console.ref = STDOUT
+
+logger.minerva.name = lcsb
+logger.minerva.level = debug
+logger.minerva-persist.name = lcsb.mapviewer.persist.DbUtils
+logger.minerva-persist.level = info
+logger.minerva-cache.name = lcsb.mapviewer.annotation.cache
+logger.minerva-cache.level = info
+
+
+logger.springframework.name = org.springframework
+logger.springframework.level = warn
+
+logger.hibernate.name = org.hibernate
+logger.hibernate.level = warn
diff --git a/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/CellDesigner2SbgnmlConversionTest.java b/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/CellDesigner2SbgnmlConversionTest.java
index 37586a9a452bb211adf72fc388124bd6e836e1d8..68901bd02dc20270de510a8a0e46e12c001dc9f1 100644
--- a/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/CellDesigner2SbgnmlConversionTest.java
+++ b/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/CellDesigner2SbgnmlConversionTest.java
@@ -9,7 +9,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -23,7 +23,7 @@ import lcsb.mapviewer.model.map.model.Model;
 @RunWith(Parameterized.class)
 public class CellDesigner2SbgnmlConversionTest {
 
-	private static Logger	logger = Logger.getLogger(CellDesigner2SbgnmlConversionTest.class.getName());
+	private static Logger	logger = LogManager.getLogger(CellDesigner2SbgnmlConversionTest.class.getName());
 
 	private Path					testPath;
 
diff --git a/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/CellDesignerToSbgnTest.java b/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/CellDesignerToSbgnTest.java
index eba8dd451e927603064cee5c608dd2aba1401ea9..b2b906eea4777ca54aa48b970f749d9b33f0859c 100644
--- a/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/CellDesignerToSbgnTest.java
+++ b/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/CellDesignerToSbgnTest.java
@@ -7,7 +7,7 @@ import java.io.File;
 import java.io.FileInputStream;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -22,7 +22,7 @@ import lcsb.mapviewer.model.map.species.Protein;
 import lcsb.mapviewer.modelutils.map.ElementUtils;
 
 public class CellDesignerToSbgnTest {
-  Logger logger = Logger.getLogger(CellDesignerToSbgnTest.class);
+  Logger logger = LogManager.getLogger(CellDesignerToSbgnTest.class);
   ElementUtils eu = new ElementUtils();
 
   @Before
diff --git a/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/DbSerializationTest.java b/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/DbSerializationTest.java
index 606d697d655e1556e3131f1b7889b1ed689e3cd9..a913509398be10d8e1417fae0333fae0604434df 100644
--- a/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/DbSerializationTest.java
+++ b/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/DbSerializationTest.java
@@ -4,7 +4,7 @@ import static org.junit.Assert.assertEquals;
 
 import java.io.File;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -29,7 +29,7 @@ public class DbSerializationTest {
   @Autowired
   DbUtils dbUtils;
 
-  Logger logger = Logger.getLogger(DbSerializationTest.class.getName());
+  Logger logger = LogManager.getLogger(DbSerializationTest.class.getName());
 
   private void makeDbSerializationTest(String filePath) throws Exception {
     SbgnmlXmlParser parser = new SbgnmlXmlParser();
diff --git a/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlExporterTest.java b/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlExporterTest.java
index 614f751351fd9ffa63c11215f808f4f45a1ef9fd..5cc4850be5dbf279a99ccbc162e1beb35b7562b1 100644
--- a/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlExporterTest.java
+++ b/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlExporterTest.java
@@ -7,7 +7,7 @@ import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Collection;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -20,7 +20,7 @@ import lcsb.mapviewer.model.map.model.Model;
 @RunWith(Parameterized.class)
 public class SbgnmlXmlExporterTest {
 
-	Logger				 logger	= Logger.getLogger(SbgnmlXmlExporterTest.class.getName());
+	Logger				 logger	= LogManager.getLogger(SbgnmlXmlExporterTest.class.getName());
 
 	private String testName;
 
diff --git a/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParserTest.java b/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParserTest.java
index 71a77b6fce9474573015961415b50c1649daf4be..bc9241ac0ea1ddb2b1e275a3102e75f81a150b81 100644
--- a/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParserTest.java
+++ b/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParserTest.java
@@ -15,7 +15,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -33,7 +33,7 @@ import lcsb.mapviewer.model.map.model.ModelComparator;
 @RunWith(Parameterized.class)
 public class SbgnmlXmlParserTest {
 
-  Logger logger = Logger.getLogger(SbgnmlXmlParserTest.class.getName());
+  Logger logger = LogManager.getLogger(SbgnmlXmlParserTest.class.getName());
 
   private Path filePath;
 
diff --git a/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParserTest2.java b/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParserTest2.java
index 1c8a70fb1271e434b0b036a2bf6b7033c878c3f9..128ea6c0c3e23dba91c00354fabe900c69c28103 100644
--- a/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParserTest2.java
+++ b/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlParserTest2.java
@@ -6,7 +6,7 @@ import static org.junit.Assert.assertTrue;
 
 import java.awt.geom.Point2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 
 import lcsb.mapviewer.common.Configuration;
@@ -20,7 +20,7 @@ import lcsb.mapviewer.model.map.species.field.Residue;
 
 public class SbgnmlXmlParserTest2 {
 
-  Logger logger = Logger.getLogger(SbgnmlXmlParserTest2.class.getName());
+  Logger logger = LogManager.getLogger(SbgnmlXmlParserTest2.class.getName());
 
   @Test
   public void testAdjustModificationCoordinates() throws Exception {
diff --git a/converter-SBGNML/src/test/resources/log4j.properties b/converter-SBGNML/src/test/resources/log4j.properties
deleted file mode 100644
index c113126ca9273d7b83eaf02f15494f05d498fe46..0000000000000000000000000000000000000000
--- a/converter-SBGNML/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,45 +0,0 @@
-#Set root logger 's level and its appender to an appender called CONSOLE which is defined below.
-log4j.rootLogger=info, CONSOLE
-
-#Set the behavior of the CONSOLE appender 
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-#log4j.appender.CONSOLE.layout.ConversionPattern=%m%n
-
-
-#Set the behavior of the FILE appender 
-log4j.appender.R=org.apache.log4j.FileAppender
-log4j.appender.R.File=${catalina.home}/logs/MapViewer.log
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-
-
-log4j.logger.org.springframework=warn
-log4j.logger.org.hibernate=warn
-log4j.logger.lcsb=debug
-
-log4j.logger.lcsb.mapviewer.model.map.species.ElementComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.SpeciesComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.SimpleMoleculeComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.ProteinComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.AssociatedElementComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.ComplexSpeciesComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.AssociatedElementComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.PhenotypeComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.fields.AssociatedElementComparator=info
-
-log4j.logger.lcsb.mapviewer.model.map.layout.alias.SpeciesAliasComparator=info
-log4j.logger.lcsb.mapviewer.model.map.layout.alias.AliasComparator=info
-log4j.logger.lcsb.mapviewer.model.map.layout.alias.ComplexAliasComparator=info
-log4j.logger.lcsb.mapviewer.model.map.layout.alias.CompartmentAliasComparator=info
-
-log4j.logger.lcsb.mapviewer.model.map.reaction.ReactionNodeComparator=info
-log4j.logger.lcsb.mapviewer.model.map.reaction.ReactionComparator=info
-log4j.logger.lcsb.mapviewer.model.map.reaction.NodeOperatorComparator=info
-log4j.logger.lcsb.mapviewer.model.map.reaction.AbstractNodeComparator=info
-
-log4j.logger.lcsb.mapviewer.model.map.model.ModelComparator=info
-
-log4j.logger.lcsb.mapviewer.common.comparator=info
-log4j.logger.lcsb.mapviewer.model.graphics.PolylineDataComparator=info
\ No newline at end of file
diff --git a/converter-SBGNML/src/test/resources/log4j2.properties b/converter-SBGNML/src/test/resources/log4j2.properties
new file mode 100644
index 0000000000000000000000000000000000000000..b5eaa32682d177bf266eb6ed4831b4e8f4b9135d
--- /dev/null
+++ b/converter-SBGNML/src/test/resources/log4j2.properties
@@ -0,0 +1,25 @@
+rootLogger.level = INFO
+appenders = console
+
+appender.console.type = Console
+appender.console.name = STDOUT
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %d %5p [%t] (%F:%L) - %m%n
+
+rootLogger.appenderRefs = console
+
+rootLogger.appenderRef.console.ref = STDOUT
+
+logger.minerva.name = lcsb
+logger.minerva.level = debug
+logger.minerva-persist.name = lcsb.mapviewer.persist.DbUtils
+logger.minerva-persist.level = info
+logger.minerva-cache.name = lcsb.mapviewer.annotation.cache
+logger.minerva-cache.level = info
+
+
+logger.springframework.name = org.springframework
+logger.springframework.level = warn
+
+logger.hibernate.name = org.hibernate
+logger.hibernate.level = warn
diff --git a/converter-graphics/pom.xml b/converter-graphics/pom.xml
index be30f8933e8156f190e19921d5d31a6ae8908933..58ee2f2f8a84e0f47c7841d90eb21050e9110780 100644
--- a/converter-graphics/pom.xml
+++ b/converter-graphics/pom.xml
@@ -27,11 +27,16 @@
 			<version>1.0</version>
 		</dependency>
 
-		<!-- Log4J -->
+		<!-- Log4J2-->
 		<dependency>
-			<groupId>log4j</groupId>
-			<artifactId>log4j</artifactId>
-			<version>${log4j.version}</version>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-api</artifactId>
+			<version>${log4j2.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-core</artifactId>
+			<version>${log4j2.version}</version>
 		</dependency>
 
 		<!-- Library used for generating svg -->
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/AbstractImageGenerator.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/AbstractImageGenerator.java
index 002935df68d27758b156b63c358b27ad9c64c726..6e402ee3ecdbbc3822a31fcf58e2d3007342b406 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/AbstractImageGenerator.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/AbstractImageGenerator.java
@@ -11,7 +11,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.ColorExtractor;
 import lcsb.mapviewer.commands.SemanticZoomLevelMatcher;
@@ -132,7 +132,7 @@ public abstract class AbstractImageGenerator {
     /**
      * Default class logger.
      */
-    private final Logger logger = Logger.getLogger(Params.class);
+    private final Logger logger = LogManager.getLogger(Params.class);
 
     /**
      * Scale at which we want to visualize the map. The default value is 1.0 (no
@@ -614,7 +614,7 @@ public abstract class AbstractImageGenerator {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(AbstractImageGenerator.class);
+  private static Logger logger = LogManager.getLogger(AbstractImageGenerator.class);
 
   /**
    * Graphics object which allows to draw objects.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/ImageGenerators.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/ImageGenerators.java
index 64d7b409b18ac86d48c4ea672cf52d487ed75015..1380ea0939d3a7c623af8b2b8ce3547cd546361b 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/ImageGenerators.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/ImageGenerators.java
@@ -6,7 +6,7 @@ import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.MimeType;
 import lcsb.mapviewer.common.Pair;
@@ -28,7 +28,7 @@ public class ImageGenerators {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final Logger																								logger						 = Logger.getLogger(ImageGenerators.class);
+	private final Logger																								logger						 = LogManager.getLogger(ImageGenerators.class);
 	/**
 	 * List of {@link AbstractImageGenerator} classes available in the system.
 	 */
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/MapGenerator.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/MapGenerator.java
index 1071f71e17f5b2ea0ddb77485ee71fea568863b9..5a288dec28ffaf26550579cdcd9d17588e99d306 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/MapGenerator.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/MapGenerator.java
@@ -4,7 +4,7 @@ import java.io.File;
 import java.io.IOException;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Configuration;
 import lcsb.mapviewer.common.IProgressUpdater;
@@ -233,7 +233,7 @@ public class MapGenerator {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(MapGenerator.class.getName());
+  private static Logger logger = LogManager.getLogger(MapGenerator.class.getName());
 
   /**
    * Default tile size. It must be 256px*256px, if different value is chosen then
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/NormalImageGenerator.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/NormalImageGenerator.java
index aa325fef7d3153248d122611681df071f408e182..bae85e5d459ab265cca511289584c5961b5fa184 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/NormalImageGenerator.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/NormalImageGenerator.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.converter.graphics;
 
 import java.awt.image.BufferedImage;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Extension of the image generator class that use standard awt implementation
@@ -16,7 +16,7 @@ public abstract class NormalImageGenerator extends AbstractImageGenerator {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private Logger				logger = Logger.getLogger(NormalImageGenerator.class);
+	private Logger				logger = LogManager.getLogger(NormalImageGenerator.class);
 
 	/**
 	 * Buffered image structure used for image generating.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/PdfFontMapper.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/PdfFontMapper.java
index 773518d7153cb2ff15ab52b36fc822c85a6de47d..0f1b991e9aea4aca2c6cf77b56c676a2512d4705 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/PdfFontMapper.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/PdfFontMapper.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.graphics;
 import java.awt.Font;
 import java.io.IOException;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import com.itextpdf.awt.DefaultFontMapper;
 import com.itextpdf.text.DocumentException;
@@ -12,7 +12,7 @@ import com.itextpdf.text.pdf.BaseFont;
 
 public class PdfFontMapper extends DefaultFontMapper {
 
-  Logger logger = Logger.getLogger(PdfFontMapper.class);
+  Logger logger = LogManager.getLogger(PdfFontMapper.class);
 
   @Override
   public BaseFont awtToPdf(Font font) {
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/PngImageGenerator.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/PngImageGenerator.java
index 59a2601c5a33e7e4316430e8f7c2d3b3eed764e9..2c92508fcdb1ff345ec9adab161ee17fb1470030 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/PngImageGenerator.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/PngImageGenerator.java
@@ -9,7 +9,7 @@ import java.io.OutputStream;
 
 import javax.imageio.ImageIO;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.MimeType;
 
@@ -26,7 +26,7 @@ public class PngImageGenerator extends NormalImageGenerator {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final Logger logger = Logger.getLogger(PngImageGenerator.class);
+	private final Logger logger = LogManager.getLogger(PngImageGenerator.class);
 
 	/**
 	 * Default constructor. Create an image that is described by params. For more
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/BioEntityConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/BioEntityConverter.java
index 0dd861759ebbcbea498fbb73f27a239f150dc443..558e6f9c71a0452ae19ebfef1fb86959617f4e04 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/BioEntityConverter.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/BioEntityConverter.java
@@ -4,7 +4,7 @@ import java.awt.Graphics2D;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.SemanticZoomLevelMatcher;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
@@ -39,7 +39,7 @@ public abstract class BioEntityConverter<T extends BioEntity> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private final Logger logger = Logger.getLogger(BioEntityConverter.class);
+  private final Logger logger = LogManager.getLogger(BioEntityConverter.class);
 
   /**
    * Class that allows to check if element is visible (or transparent) when
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/BioEntityConverterImpl.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/BioEntityConverterImpl.java
index 2153b4333e32168ce51092239f70c94b04ef2a14..e8648ce214843589b107882355b8710363c30fb3 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/BioEntityConverterImpl.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/BioEntityConverterImpl.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.graphics.bioEntity;
 import java.awt.Graphics2D;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.ColorExtractor;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
@@ -70,7 +70,7 @@ public class BioEntityConverterImpl extends BioEntityConverter<BioEntity> {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger logger = Logger.getLogger(BioEntityConverterImpl.class.getName());
+	private static Logger logger = LogManager.getLogger(BioEntityConverterImpl.class.getName());
 
 	/**
 	 * Returns a converter for given element. If converter doesn't exist then
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/BottomSquareCompartmentConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/BottomSquareCompartmentConverter.java
index 49fda869361dfbd4e28bddee5e012d4030e7e992..6e5b24fa099f332607a7875811280402fd15fddb 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/BottomSquareCompartmentConverter.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/BottomSquareCompartmentConverter.java
@@ -9,7 +9,7 @@ import java.awt.geom.Line2D;
 import java.awt.geom.Point2D;
 import java.awt.geom.Rectangle2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.ColorExtractor;
 import lcsb.mapviewer.converter.graphics.ConverterParams;
@@ -31,7 +31,7 @@ public class BottomSquareCompartmentConverter extends CompartmentConverter<Botto
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger logger = Logger.getLogger(BottomSquareCompartmentConverter.class.getName());
+	private static Logger logger = LogManager.getLogger(BottomSquareCompartmentConverter.class.getName());
 
 	/**
 	 * Default constructor.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/CompartmentConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/CompartmentConverter.java
index 1c0d4c4c126aa73bdbb5a42d34e9d942284d5155..a5bdb92e4bc3f4e903718db3299c5ebac972fe06 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/CompartmentConverter.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/CompartmentConverter.java
@@ -6,7 +6,7 @@ import java.awt.Graphics2D;
 import java.awt.geom.Rectangle2D;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.ColorExtractor;
 import lcsb.mapviewer.common.Configuration;
@@ -38,7 +38,7 @@ public abstract class CompartmentConverter<T extends Compartment> extends Elemen
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger					logger										 = Logger.getLogger(CompartmentConverter.class.getName());
+	private static Logger					logger										 = LogManager.getLogger(CompartmentConverter.class.getName());
 
 	/**
 	 * Default font size.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/LeftSquareCompartmentConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/LeftSquareCompartmentConverter.java
index 860079d2f74b2d7fbfd0a70834194181f469f8ca..7ec656b2e1c7241bd2cae07b26f0a9f47d98bdcc 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/LeftSquareCompartmentConverter.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/LeftSquareCompartmentConverter.java
@@ -16,7 +16,7 @@ import lcsb.mapviewer.model.graphics.LineType;
 import lcsb.mapviewer.model.map.compartment.LeftSquareCompartment;
 import lcsb.mapviewer.model.map.layout.ColorSchema;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Class responsible for drawing LeftSquareCompartment on the Graphics2D.
@@ -30,7 +30,7 @@ public class LeftSquareCompartmentConverter extends CompartmentConverter<LeftSqu
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger logger = Logger.getLogger(LeftSquareCompartmentConverter.class.getName());
+	private static Logger logger = LogManager.getLogger(LeftSquareCompartmentConverter.class.getName());
 
 	/**
 	 * Default constructor.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/RightSquareCompartmentConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/RightSquareCompartmentConverter.java
index d9116520e2d3cecc6271a0ecb1b9d8e14946aecc..07cbf554678875b5d07b6ebeb886f14cec2bdb7c 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/RightSquareCompartmentConverter.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/RightSquareCompartmentConverter.java
@@ -17,7 +17,7 @@ import lcsb.mapviewer.model.map.compartment.RightSquareCompartment;
 import lcsb.mapviewer.model.map.layout.ColorSchema;
 import lcsb.mapviewer.model.map.species.Species;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Class responsible for drawing RightSquareCompartment on the Graphics2D.
@@ -31,7 +31,7 @@ public class RightSquareCompartmentConverter extends CompartmentConverter<RightS
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger logger = Logger.getLogger(RightSquareCompartmentConverter.class.getName());
+	private static Logger logger = LogManager.getLogger(RightSquareCompartmentConverter.class.getName());
 
 	/**
 	 * Default constructor.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/SquareCompartmentConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/SquareCompartmentConverter.java
index ab6de2d9a5504f9010c1de06e78d475f4f0d4f4f..28a135e7acc2d980edb0c71e10d0b737b4403832 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/SquareCompartmentConverter.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/SquareCompartmentConverter.java
@@ -8,7 +8,7 @@ import java.awt.geom.Area;
 import java.awt.geom.Point2D;
 import java.awt.geom.RoundRectangle2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.ColorExtractor;
 import lcsb.mapviewer.converter.graphics.ConverterParams;
@@ -35,7 +35,7 @@ public class SquareCompartmentConverter extends CompartmentConverter<SquareCompa
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger		 logger										 = Logger.getLogger(SquareCompartmentConverter.class.getName());
+	private static Logger		 logger										 = LogManager.getLogger(SquareCompartmentConverter.class.getName());
 
 	/**
 	 * Default constructor.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/TopSquareCompartmentConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/TopSquareCompartmentConverter.java
index a1a53b8b3be44b2ad42e32ddbe0ba5268d3673d3..fb9f79783f4f21899cd53c91e465b98fb0e4da14 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/TopSquareCompartmentConverter.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/compartment/TopSquareCompartmentConverter.java
@@ -17,7 +17,7 @@ import lcsb.mapviewer.model.map.compartment.TopSquareCompartment;
 import lcsb.mapviewer.model.map.layout.ColorSchema;
 import lcsb.mapviewer.model.map.species.Species;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Class responsible for drawing TopSquareCompartment on the {@link Graphics2D}.
@@ -31,7 +31,7 @@ public class TopSquareCompartmentConverter extends CompartmentConverter<TopSquar
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger logger = Logger.getLogger(TopSquareCompartmentConverter.class.getName());
+	private static Logger logger = LogManager.getLogger(TopSquareCompartmentConverter.class.getName());
 
 	/**
 	 * Default constructor.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/AntisenseRnaConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/AntisenseRnaConverter.java
index 3b4b395ac87b1abaffa2069131616149e4f4c3a6..df69b75fdd7f6f56b055b5fde5861394fe9a10ea 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/AntisenseRnaConverter.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/AntisenseRnaConverter.java
@@ -8,7 +8,7 @@ import java.awt.geom.GeneralPath;
 import java.awt.geom.Path2D;
 import java.awt.geom.PathIterator;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.ColorExtractor;
 import lcsb.mapviewer.converter.graphics.ConverterParams;
@@ -30,7 +30,7 @@ public class AntisenseRnaConverter extends SpeciesConverter<AntisenseRna> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(AntisenseRnaConverter.class.getName());
+  private static Logger logger = LogManager.getLogger(AntisenseRnaConverter.class.getName());
 
   /**
    * Default constructor.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/ComplexConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/ComplexConverter.java
index f8651b9659f5932f2ed442ca56d4c15e4555b771..7d1ec5191de1638b8ce6b7b6545c366f2881a41e 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/ComplexConverter.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/ComplexConverter.java
@@ -9,7 +9,7 @@ import java.awt.geom.GeneralPath;
 import java.awt.geom.Path2D;
 import java.awt.geom.PathIterator;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.ColorExtractor;
 import lcsb.mapviewer.converter.graphics.ConverterParams;
@@ -43,7 +43,7 @@ public class ComplexConverter extends SpeciesConverter<Complex> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(ComplexConverter.class);
+  private static Logger logger = LogManager.getLogger(ComplexConverter.class);
 
   /**
    * Default constructor.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/DegradedConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/DegradedConverter.java
index 6e9372c56b9fbbe902bf21658c1c8eb6af2b7436..3d0c456e88c01d4de4ee72296d3fd3e9fec41804 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/DegradedConverter.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/DegradedConverter.java
@@ -9,7 +9,7 @@ import java.awt.geom.GeneralPath;
 import java.awt.geom.Path2D;
 import java.awt.geom.PathIterator;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.ColorExtractor;
 import lcsb.mapviewer.common.exception.InvalidStateException;
@@ -35,7 +35,7 @@ public class DegradedConverter extends SpeciesConverter<Degraded> {
 	/**
 	 * Default class logger.
 	 */
-	private static Logger		 logger											= Logger.getLogger(DegradedConverter.class.getName());
+	private static Logger		 logger											= LogManager.getLogger(DegradedConverter.class.getName());
 
 	/**
 	 * Default constructor.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/DrugConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/DrugConverter.java
index f917d41fcefc584a52b0777c7d1a51abfb8c9d8d..b737c0071d80bbde7da9e219c136f6f9555e3fbf 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/DrugConverter.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/DrugConverter.java
@@ -10,7 +10,7 @@ import java.awt.geom.Point2D;
 import java.awt.geom.RoundRectangle2D;
 import java.util.ArrayList;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.ColorExtractor;
 import lcsb.mapviewer.converter.graphics.ConverterParams;
@@ -42,7 +42,7 @@ public class DrugConverter extends SpeciesConverter<Drug> {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger		 logger										 = Logger.getLogger(DrugConverter.class.getName());
+	private static Logger		 logger										 = LogManager.getLogger(DrugConverter.class.getName());
 
 	/**
 	 * Default constructor.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/GeneConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/GeneConverter.java
index 5f3e6682417ba3c38bfe601b46958cde744c054b..434fd029f59f176918c46466d816c24aa437559b 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/GeneConverter.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/GeneConverter.java
@@ -8,7 +8,7 @@ import java.awt.Stroke;
 import java.awt.geom.AffineTransform;
 import java.awt.geom.PathIterator;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.ColorExtractor;
 import lcsb.mapviewer.converter.graphics.ConverterParams;
@@ -29,7 +29,7 @@ public class GeneConverter extends SpeciesConverter<Gene> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(GeneConverter.class.getName());
+  private static Logger logger = LogManager.getLogger(GeneConverter.class.getName());
 
   /**
    * Default constructor.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/IonConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/IonConverter.java
index 0b938b0996af830f811059429017c45041e3492b..c8b7b82220e3c6c8fb41ae59a134352c457331ae 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/IonConverter.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/IonConverter.java
@@ -7,7 +7,7 @@ import java.awt.Stroke;
 import java.awt.geom.Ellipse2D;
 import java.awt.geom.PathIterator;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.ColorExtractor;
 import lcsb.mapviewer.common.exception.InvalidStateException;
@@ -28,7 +28,7 @@ public class IonConverter extends SpeciesConverter<Ion> {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(IonConverter.class.getName());
+  private static Logger logger = LogManager.getLogger(IonConverter.class.getName());
 
   /**
    * Default constructor.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/PhenotypeConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/PhenotypeConverter.java
index 7cd37307323963793183f61023e3466523de5727..9523b1052e0c9f473d3f49f8d2c5c01fe5ca1b71 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/PhenotypeConverter.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/PhenotypeConverter.java
@@ -8,7 +8,7 @@ import java.awt.geom.GeneralPath;
 import java.awt.geom.Path2D;
 import java.awt.geom.PathIterator;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.ColorExtractor;
 import lcsb.mapviewer.converter.graphics.ConverterParams;
@@ -27,7 +27,7 @@ public class PhenotypeConverter extends SpeciesConverter<Phenotype> {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger logger = Logger.getLogger(PhenotypeConverter.class.getName());
+	private static Logger logger = LogManager.getLogger(PhenotypeConverter.class.getName());
 
 	/**
 	 * Default constructor.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/ProteinConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/ProteinConverter.java
index 26148f80091ba04c270ca15d925433749ddb76c3..740c279f09afc839363ba15d24fc558fbcdbb6b1 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/ProteinConverter.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/ProteinConverter.java
@@ -13,7 +13,7 @@ import java.awt.geom.Point2D;
 import java.awt.geom.RoundRectangle2D;
 import java.util.ArrayList;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.ColorExtractor;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
@@ -56,7 +56,7 @@ public class ProteinConverter extends SpeciesConverter<Protein> {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(ProteinConverter.class.getName());
+  private static Logger logger = LogManager.getLogger(ProteinConverter.class.getName());
 
   /**
    * Helps in providing human readable identifiers of elements for logging.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/RnaConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/RnaConverter.java
index c36bf559ea53d37821fc7e5443b129288da01f50..0d1976a6bd043aec00e0fc2fd94ca364c5f0d460 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/RnaConverter.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/RnaConverter.java
@@ -15,7 +15,7 @@ import java.awt.geom.GeneralPath;
 import java.awt.geom.Path2D;
 import java.awt.geom.PathIterator;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.ColorExtractor;
 import lcsb.mapviewer.converter.graphics.ConverterParams;
@@ -36,7 +36,7 @@ public class RnaConverter extends SpeciesConverter<Rna> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(RnaConverter.class.getName());
+  private static Logger logger = LogManager.getLogger(RnaConverter.class.getName());
 
   /**
    * Default constructor.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/SimpleMoleculeConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/SimpleMoleculeConverter.java
index 9fb6eab78dd74d9caaa59463f0b8ae18b1bd3bbe..3f1ef8a8e601554cebcf87146d1c26908788193c 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/SimpleMoleculeConverter.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/SimpleMoleculeConverter.java
@@ -7,7 +7,7 @@ import java.awt.Stroke;
 import java.awt.geom.Ellipse2D;
 import java.awt.geom.PathIterator;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.ColorExtractor;
 import lcsb.mapviewer.common.exception.InvalidStateException;
@@ -28,7 +28,7 @@ public class SimpleMoleculeConverter extends SpeciesConverter<SimpleMolecule> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(SimpleMoleculeConverter.class.getName());
+  private static Logger logger = LogManager.getLogger(SimpleMoleculeConverter.class.getName());
 
   /**
    * Default constructor.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/SpeciesConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/SpeciesConverter.java
index d5e130d99f5e5a4d4fa02d86d297a5d0cb07845e..9ca7a39cb712f48cc99155f7bb2d7b65d5a4db62 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/SpeciesConverter.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/SpeciesConverter.java
@@ -12,7 +12,7 @@ import java.awt.geom.Point2D;
 import java.awt.geom.Rectangle2D;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.ColorExtractor;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
@@ -114,7 +114,7 @@ public abstract class SpeciesConverter<T extends Species> extends ElementConvert
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(SpeciesConverter.class.getName());
+  private static Logger logger = LogManager.getLogger(SpeciesConverter.class.getName());
 
   /**
    * Graphical helper object with line transformation functions.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/UnknownConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/UnknownConverter.java
index 14e17a446350b08b5d75dfebff9d265ffa909e91..1bd3793542f31481573b026ea2cf819588f2bd91 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/UnknownConverter.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/UnknownConverter.java
@@ -7,7 +7,7 @@ import java.awt.Stroke;
 import java.awt.geom.Ellipse2D;
 import java.awt.geom.PathIterator;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.ColorExtractor;
 import lcsb.mapviewer.common.exception.InvalidStateException;
@@ -30,7 +30,7 @@ public class UnknownConverter extends SpeciesConverter<Unknown> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(UnknownConverter.class.getName());
+  private static Logger logger = LogManager.getLogger(UnknownConverter.class.getName());
 
   /**
    * Default constructor.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/reaction/ReactionConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/reaction/ReactionConverter.java
index 910e87eb8e91cd4581c712dfa26fbc5c477a14f7..2f86da192efd01082319ab75d63f76db56cce6f4 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/reaction/ReactionConverter.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/bioEntity/reaction/ReactionConverter.java
@@ -11,7 +11,7 @@ import java.awt.geom.Rectangle2D;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.ColorExtractor;
 import lcsb.mapviewer.common.Pair;
@@ -84,7 +84,7 @@ public class ReactionConverter extends BioEntityConverter<Reaction> {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger				logger							= Logger.getLogger(ReactionConverter.class.getName());
+	private static Logger				logger							= LogManager.getLogger(ReactionConverter.class.getName());
 
 	/**
 	 * Font used for drawing reaction description on the map.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/geometry/ArrowTransformation.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/geometry/ArrowTransformation.java
index 979a7987ea525326a232dc44fd4bbeaee6cc6539..e7af708f14525c188c52d89b2e86cee8132951c5 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/geometry/ArrowTransformation.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/geometry/ArrowTransformation.java
@@ -11,7 +11,7 @@ import java.awt.geom.Point2D;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Configuration;
 import lcsb.mapviewer.common.geometry.PointTransformation;
@@ -34,7 +34,7 @@ public class ArrowTransformation {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(ArrowTransformation.class.getName());
+  private static Logger logger = LogManager.getLogger(ArrowTransformation.class.getName());
 
   /**
    * Object used to perform transformations on point objects.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/geometry/FontFinder.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/geometry/FontFinder.java
index 7a70eeee404afcbc7d9e796f026f21a8394e2b5b..07d1aac5b1a4650ec3bc54c4db5b9b1b043fc24d 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/geometry/FontFinder.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/geometry/FontFinder.java
@@ -8,7 +8,7 @@ import java.util.List;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * This is utility class that helps to find optimal font to fit text into
@@ -22,7 +22,7 @@ public final class FontFinder {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger	logger	= Logger.getLogger(FontFinder.class);
+	private static Logger	logger	= LogManager.getLogger(FontFinder.class);
 
 	/**
 	 * Constructor that prevents class from instantiate.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerConverter.java
index 75f7cc5ab545888984505b0b809325cb9cc2cbeb..aafbe6692997a61dd181587e8ec8e038789e50bf 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerConverter.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerConverter.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.converter.graphics.layer;
 
 import java.awt.Graphics2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.graphics.PolylineData;
 import lcsb.mapviewer.model.map.layout.graphics.Layer;
@@ -22,7 +22,7 @@ public class LayerConverter {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(LayerConverter.class.getName());
+  private static Logger logger = LogManager.getLogger(LayerConverter.class.getName());
 
   LayerLineConverter lineConverter;
   LayerRectConverter rectConverter;
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerLineConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerLineConverter.java
index db4382e3158dca277a9e60f39e3dbde841f5bf29..5ec1818d22ad587e10d81ab62a899e2f863d4f6c 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerLineConverter.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerLineConverter.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.graphics.layer;
 import java.awt.Color;
 import java.awt.Graphics2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.converter.graphics.geometry.ArrowTransformation;
 import lcsb.mapviewer.model.graphics.PolylineData;
@@ -20,7 +20,7 @@ public class LayerLineConverter {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(LayerLineConverter.class.getName());
+  private static Logger logger = LogManager.getLogger(LayerLineConverter.class.getName());
 
   /**
    * This objects helps drawing arrows.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerOvalConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerOvalConverter.java
index 92fc819dbc9a8ec4ad45e6c930aec3041936e871..3ab35e7117ae71f4ecae55f5decca8ebafd252e9 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerOvalConverter.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerOvalConverter.java
@@ -4,7 +4,7 @@ import java.awt.Color;
 import java.awt.Graphics2D;
 import java.awt.geom.Ellipse2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.map.layout.graphics.LayerOval;
 
@@ -20,7 +20,7 @@ public class LayerOvalConverter {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(LayerOvalConverter.class.getName());
+  private static Logger logger = LogManager.getLogger(LayerOvalConverter.class.getName());
 
   /**
    * Draws oval on the Graphics2D.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerRectConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerRectConverter.java
index c448d58c10419f762cbca49c83bd50ceccd05d49..5f8a26d2021722904c85badec68e3d6ea6b28701 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerRectConverter.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerRectConverter.java
@@ -4,7 +4,7 @@ import java.awt.Color;
 import java.awt.Graphics2D;
 import java.awt.geom.Rectangle2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.map.layout.graphics.LayerRect;
 
@@ -20,7 +20,7 @@ public class LayerRectConverter {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(LayerRectConverter.class.getName());
+  private static Logger logger = LogManager.getLogger(LayerRectConverter.class.getName());
 
   /**
    * Draws rectangle on the Graphics2D.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerTextConverter.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerTextConverter.java
index 3d5d5f99f4e071c78a8fefcf960b3cc52aa747b4..1f7d1958c5a2cf9a038491e2e2bc0d04fa20ed89 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerTextConverter.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/layer/LayerTextConverter.java
@@ -4,7 +4,7 @@ import java.awt.Color;
 import java.awt.Graphics2D;
 import java.awt.geom.Rectangle2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.map.layout.graphics.LayerText;
 
@@ -20,7 +20,7 @@ public class LayerTextConverter {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(LayerTextConverter.class.getName());
+  private static Logger logger = LogManager.getLogger(LayerTextConverter.class.getName());
 
   /**
    * Color used for text frames.
diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/placefinder/PlaceFinder.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/placefinder/PlaceFinder.java
index 9e12099a0d1f9fe5d2b019fad415f3b24d9a4789..e2961fbbf5bceafe7f0da5f091352397d44b832f 100644
--- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/placefinder/PlaceFinder.java
+++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/placefinder/PlaceFinder.java
@@ -8,7 +8,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.SemanticZoomLevelMatcher;
 import lcsb.mapviewer.model.map.compartment.Compartment;
@@ -111,7 +111,7 @@ public class PlaceFinder {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger																	logger			 = Logger.getLogger(PlaceFinder.class.getName());
+	private static Logger																	logger			 = LogManager.getLogger(PlaceFinder.class.getName());
 	/**
 	 * Whole surface is split into rectangular regions. The lines that cut the
 	 * surface correspond to borders of aliases that overlap current alias. This
diff --git a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/AbstractImageGeneratorTest.java b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/AbstractImageGeneratorTest.java
index 83896981a3c0062286b1f8fc460a018e1472b2b6..4fc57b5b08a0f9052f3a2e16c25c266e613b6b47 100644
--- a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/AbstractImageGeneratorTest.java
+++ b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/AbstractImageGeneratorTest.java
@@ -6,7 +6,7 @@ import static org.mockito.Mockito.verify;
 
 import java.awt.Graphics2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -19,7 +19,7 @@ import lcsb.mapviewer.model.map.reaction.Reaction;
 import lcsb.mapviewer.model.map.species.GenericProtein;
 
 public class AbstractImageGeneratorTest extends GraphicsTestFunctions {
-  Logger logger = Logger.getLogger(AbstractImageGeneratorTest.class);
+  Logger logger = LogManager.getLogger(AbstractImageGeneratorTest.class);
 
   @AfterClass
   public static void tearDownAfterClass() throws Exception {
diff --git a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/MapGeneratorTest.java b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/MapGeneratorTest.java
index e69e05f28b0e92af382e729d8e4bcf31a4532e74..7f888089f6516a48f0153201c811c9c8c8939cd1 100644
--- a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/MapGeneratorTest.java
+++ b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/MapGeneratorTest.java
@@ -14,13 +14,13 @@ import lcsb.mapviewer.model.map.model.Model;
 import lcsb.mapviewer.model.map.model.ModelFullIndexed;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
 public class MapGeneratorTest {
-	Logger	logger	= Logger.getLogger(MapGeneratorTest.class);
+	Logger	logger	= LogManager.getLogger(MapGeneratorTest.class);
 
 	@Before
 	public void setUp() throws Exception {
diff --git a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/NormalImageGeneratorTest.java b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/NormalImageGeneratorTest.java
index b4671daa3184a7bf4ae294210259a07dd12907a9..3dd15c0c5509d3ef122d6802ee53a207ef8c4234 100644
--- a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/NormalImageGeneratorTest.java
+++ b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/NormalImageGeneratorTest.java
@@ -4,7 +4,7 @@ import java.awt.Color;
 import java.awt.geom.Point2D;
 import java.awt.geom.Rectangle2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -19,7 +19,7 @@ import lcsb.mapviewer.model.map.model.ModelFullIndexed;
 import lcsb.mapviewer.model.map.species.Complex;
 
 public class NormalImageGeneratorTest {
-	static Logger logger = Logger.getLogger(NormalImageGenerator.class);
+	static Logger logger = LogManager.getLogger(NormalImageGenerator.class);
 
 	@Before
 	public void setUp() throws Exception {
diff --git a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/ComplexConverterTest.java b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/ComplexConverterTest.java
index fa3159f439ca8f4de96d9ef3b17c468f38978765..cf8a3e54b7e5e12e523ca41228007d1d04ef5bb2 100644
--- a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/ComplexConverterTest.java
+++ b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/ComplexConverterTest.java
@@ -7,7 +7,7 @@ import java.awt.Color;
 import java.awt.Graphics2D;
 import java.awt.image.BufferedImage;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -17,7 +17,7 @@ import lcsb.mapviewer.converter.graphics.ConverterParams;
 import lcsb.mapviewer.model.map.species.Complex;
 
 public class ComplexConverterTest {
-  Logger logger = Logger.getLogger(ComplexConverterTest.class);
+  Logger logger = LogManager.getLogger(ComplexConverterTest.class);
 
   ColorExtractor colorExtractor = new ColorExtractor(Color.RED, Color.GREEN, Color.BLUE);
 
diff --git a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/SpeciesConverterTest.java b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/SpeciesConverterTest.java
index 12c1aa6efc6bedd84841e429ee12ab9e778bdf86..d70d97047fc9b51052aaf9cb68f3b0b8d4a6f543 100644
--- a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/SpeciesConverterTest.java
+++ b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/SpeciesConverterTest.java
@@ -25,7 +25,7 @@ import java.util.List;
 
 import javax.imageio.ImageIO;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -51,7 +51,7 @@ import lcsb.mapviewer.model.map.species.field.Residue;
 import lcsb.mapviewer.model.map.species.field.TranscriptionSite;
 
 public class SpeciesConverterTest extends GraphicsTestFunctions{
-  Logger logger = Logger.getLogger(SpeciesConverterTest.class);
+  Logger logger = LogManager.getLogger(SpeciesConverterTest.class);
 
   ColorExtractor colorExtractor = new ColorExtractor(Color.RED, Color.GREEN, Color.BLUE);
 
diff --git a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/geometry/ArrowTransformationTest.java b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/geometry/ArrowTransformationTest.java
index 628b799f8c8b6c71b20a6aa5e66b05de944ebedd..f90dec91527104175b107b6685ea8e3801949dc2 100644
--- a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/geometry/ArrowTransformationTest.java
+++ b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/geometry/ArrowTransformationTest.java
@@ -9,7 +9,7 @@ import java.awt.geom.Point2D;
 import java.awt.image.BufferedImage;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -19,7 +19,7 @@ import lcsb.mapviewer.model.graphics.ArrowType;
 import lcsb.mapviewer.model.graphics.PolylineData;
 
 public class ArrowTransformationTest {
-  Logger logger = Logger.getLogger(ArrowTransformationTest.class);
+  Logger logger = LogManager.getLogger(ArrowTransformationTest.class);
 
   ArrowTransformation at = new ArrowTransformation();
   PointTransformation pointTransformation = new PointTransformation();
diff --git a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/placefinder/AllPlaceFinderTest.java b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/placefinder/AllPlaceFinderTest.java
index 3ab34b1d27cb204e00cc734bf46304b02ad1d1ee..d06da1242eaa19f3ba8c2cd361c1d8301201a683 100644
--- a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/placefinder/AllPlaceFinderTest.java
+++ b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/placefinder/AllPlaceFinderTest.java
@@ -7,7 +7,7 @@ import java.awt.geom.Rectangle2D;
 import java.io.IOException;
 import java.util.Arrays;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 
 import lcsb.mapviewer.common.exception.InvalidXmlSchemaException;
@@ -17,7 +17,7 @@ import lcsb.mapviewer.model.map.model.Model;
 import lcsb.mapviewer.model.map.model.ModelFullIndexed;
 
 public class AllPlaceFinderTest {
-	Logger			 logger	= Logger.getLogger(AllPlaceFinderTest.class);
+	Logger			 logger	= LogManager.getLogger(AllPlaceFinderTest.class);
 	final String out		= "map_images/testOutput";
 	final String folder	= "testFiles/placeFinderFiles/";
 
diff --git a/converter-graphics/src/test/resources/log4j.properties b/converter-graphics/src/test/resources/log4j.properties
deleted file mode 100644
index e66aa395621b6423c2efe274234336b4d1baf858..0000000000000000000000000000000000000000
--- a/converter-graphics/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-#Set root logger 's level and its appender to an appender called CONSOLE which is defined below.
-log4j.rootLogger=info, CONSOLE
-
-#Set the behavior of the CONSOLE appender 
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-#log4j.appender.CONSOLE.layout.ConversionPattern=%m%n
-
-
-#Set the behavior of the FILE appender 
-log4j.appender.R=org.apache.log4j.FileAppender
-log4j.appender.R.File=${catalina.home}/logs/MapViewer.log
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-
-
-log4j.logger.org.springframework=warn
-log4j.logger.org.hibernate=warn
-log4j.logger.lcsb=debug
diff --git a/converter-graphics/src/test/resources/log4j2.properties b/converter-graphics/src/test/resources/log4j2.properties
new file mode 100644
index 0000000000000000000000000000000000000000..b5eaa32682d177bf266eb6ed4831b4e8f4b9135d
--- /dev/null
+++ b/converter-graphics/src/test/resources/log4j2.properties
@@ -0,0 +1,25 @@
+rootLogger.level = INFO
+appenders = console
+
+appender.console.type = Console
+appender.console.name = STDOUT
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %d %5p [%t] (%F:%L) - %m%n
+
+rootLogger.appenderRefs = console
+
+rootLogger.appenderRef.console.ref = STDOUT
+
+logger.minerva.name = lcsb
+logger.minerva.level = debug
+logger.minerva-persist.name = lcsb.mapviewer.persist.DbUtils
+logger.minerva-persist.level = info
+logger.minerva-cache.name = lcsb.mapviewer.annotation.cache
+logger.minerva-cache.level = info
+
+
+logger.springframework.name = org.springframework
+logger.springframework.level = warn
+
+logger.hibernate.name = org.hibernate
+logger.hibernate.level = warn
diff --git a/converter-sbml/pom.xml b/converter-sbml/pom.xml
index f3c2a5ec22b5b2701bb9a7124504455306fe9d89..feff17ab42f00d0b84dc154b32a12e423723d215 100644
--- a/converter-sbml/pom.xml
+++ b/converter-sbml/pom.xml
@@ -58,11 +58,16 @@
 			<version>1.0</version>
 		</dependency>
 
-		<!-- Log4J -->
+		<!-- Log4J2-->
 		<dependency>
-			<groupId>log4j</groupId>
-			<artifactId>log4j</artifactId>
-			<version>${log4j.version}</version>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-api</artifactId>
+			<version>${log4j2.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-core</artifactId>
+			<version>${log4j2.version}</version>
 		</dependency>
 
 		<!-- mockito used for testing -->
@@ -80,18 +85,6 @@
 			<!-- for now we use lower version of log4j and this one introduce some 
 				problem with tomcat logging -->
 			<exclusions>
-				<exclusion>
-					<groupId>org.apache.logging.log4j</groupId>
-					<artifactId>log4j-core</artifactId>
-				</exclusion>
-				<exclusion>
-					<groupId>org.apache.logging.log4j</groupId>
-					<artifactId>log4j-api</artifactId>
-				</exclusion>
-				<exclusion>
-					<groupId>org.apache.logging.log4j</groupId>
-					<artifactId>log4j-1.2-api</artifactId>
-				</exclusion>
 				<exclusion>
 					<groupId>org.slf4j</groupId>
 					<artifactId>slf4j-api</artifactId>
@@ -119,18 +112,6 @@
 			<!-- for now we use lower version of log4j and this one introduce some 
 				problem with tomcat logging -->
 			<exclusions>
-				<exclusion>
-					<groupId>org.apache.logging.log4j</groupId>
-					<artifactId>log4j-core</artifactId>
-				</exclusion>
-				<exclusion>
-					<groupId>org.apache.logging.log4j</groupId>
-					<artifactId>log4j-api</artifactId>
-				</exclusion>
-				<exclusion>
-					<groupId>org.apache.logging.log4j</groupId>
-					<artifactId>log4j-1.2-api</artifactId>
-				</exclusion>
 				<exclusion>
 					<groupId>org.slf4j</groupId>
 					<artifactId>slf4j-api</artifactId>
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlBioEntityExporter.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlBioEntityExporter.java
index af25102b5009fc4accb7905e1a63fb3eeb02397d..9f30881078c1b24b2fbd0339b3b679da5a5463b9 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlBioEntityExporter.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlBioEntityExporter.java
@@ -9,7 +9,7 @@ import java.util.Set;
 
 import javax.xml.stream.XMLStreamException;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.sbml.jsbml.Model;
 import org.sbml.jsbml.ext.SBasePlugin;
 import org.sbml.jsbml.ext.layout.AbstractReferenceGlyph;
@@ -43,7 +43,7 @@ public abstract class SbmlBioEntityExporter<T extends BioEntity, S extends org.s
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(SbmlBioEntityExporter.class);
+  private static Logger logger = LogManager.getLogger(SbmlBioEntityExporter.class);
 
   /**
    * SBML Layout used when exporting map.
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlBioEntityParser.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlBioEntityParser.java
index 0d7b1b69cde649631eea1270d52971df8a5baf00..4b6d452cf181f0036126a70648e2a87d039c5547 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlBioEntityParser.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlBioEntityParser.java
@@ -9,7 +9,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.sbml.jsbml.AbstractNamedSBase;
 import org.sbml.jsbml.Annotation;
 import org.sbml.jsbml.ext.SBasePlugin;
@@ -39,7 +39,7 @@ public class SbmlBioEntityParser {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(SbmlBioEntityParser.class);
+  private static Logger logger = LogManager.getLogger(SbmlBioEntityParser.class);
 
   /**
    * SBML layout attached to parsed {@link #sbmlModel}.
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlElementExporter.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlElementExporter.java
index 6811aa01c06be42fe7e3cbb8a0e29f45153d2f95..0ce8175cd4f80d73d3dce7ac307686ed61eb3430 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlElementExporter.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlElementExporter.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.converter.model.sbml;
 
 import java.util.Collection;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.sbml.jsbml.Model;
 import org.sbml.jsbml.ext.layout.AbstractReferenceGlyph;
 import org.sbml.jsbml.ext.layout.BoundingBox;
@@ -20,7 +20,7 @@ public abstract class SbmlElementExporter<T extends Element, S extends org.sbml.
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(SbmlElementExporter.class);
+  private static Logger logger = LogManager.getLogger(SbmlElementExporter.class);
 
   public SbmlElementExporter(Model sbmlModel, lcsb.mapviewer.model.map.model.Model minervaModel,
       Collection<SbmlExtension> sbmlExtensions) {
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlElementParser.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlElementParser.java
index d34c7e6eeec524a89b96404230bd5237e4fa39de..0cf6bf8e43400777172f3c3ffed636b3a5ea04f2 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlElementParser.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlElementParser.java
@@ -8,7 +8,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.sbml.jsbml.ListOf;
 import org.sbml.jsbml.Model;
 import org.sbml.jsbml.ext.layout.AbstractReferenceGlyph;
@@ -23,7 +23,7 @@ public abstract class SbmlElementParser<T extends org.sbml.jsbml.Symbol> extends
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(SbmlElementParser.class);
+  private Logger logger = LogManager.getLogger(SbmlElementParser.class);
 
   public SbmlElementParser(Model sbmlModel, lcsb.mapviewer.model.map.model.Model minervaModel) {
     super(sbmlModel, minervaModel);
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlExporter.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlExporter.java
index 74be94336b2aac7b39ebac3d016a50a5e33897cc..a06be0636a4f60169498996119c7b66695850cd1 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlExporter.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlExporter.java
@@ -9,7 +9,7 @@ import java.util.Set;
 import javax.xml.stream.XMLStreamException;
 
 import org.apache.commons.io.output.ByteArrayOutputStream;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.sbml.jsbml.Model;
 import org.sbml.jsbml.SBMLDocument;
 import org.sbml.jsbml.SBMLWriter;
@@ -33,7 +33,7 @@ import lcsb.mapviewer.model.map.species.Species;
 public class SbmlExporter {
 
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(SbmlExporter.class);
+  private static Logger logger = LogManager.getLogger(SbmlExporter.class);
 
   /**
    * Set of SBML extensions that should be used during export.
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlFunctionExporter.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlFunctionExporter.java
index d534a4ff112caeb06a213da946ef85614015e333..516e58830e03869146af1094bafc49448a52b678 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlFunctionExporter.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlFunctionExporter.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.converter.model.sbml;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.sbml.jsbml.ASTNode;
 import org.sbml.jsbml.FunctionDefinition;
 
@@ -8,7 +8,7 @@ import lcsb.mapviewer.model.map.kinetics.SbmlFunction;
 import lcsb.mapviewer.model.map.model.Model;
 
 public class SbmlFunctionExporter {
-  Logger logger = Logger.getLogger(SbmlFunctionExporter.class);
+  Logger logger = LogManager.getLogger(SbmlFunctionExporter.class);
   private Model minervaModel;
 
   public SbmlFunctionExporter(lcsb.mapviewer.model.map.model.Model minervaModel) {
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlFunctionParser.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlFunctionParser.java
index 53197344f5d124d645fcea1fd30b4ad967282c86..325afcb84d0116f55ace54552bc36975c00ce359 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlFunctionParser.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlFunctionParser.java
@@ -5,7 +5,7 @@ import java.util.Collection;
 import java.util.List;
 
 import lcsb.mapviewer.common.XmlParser;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.sbml.jsbml.ListOf;
 import org.sbml.jsbml.Model;
 import org.w3c.dom.Node;
@@ -15,7 +15,7 @@ import lcsb.mapviewer.converter.InvalidInputDataExecption;
 import lcsb.mapviewer.model.map.kinetics.SbmlFunction;
 
 public class SbmlFunctionParser extends SbmlBioEntityParser {
-  Logger logger = Logger.getLogger(SbmlFunctionParser.class);
+  Logger logger = LogManager.getLogger(SbmlFunctionParser.class);
 
   public SbmlFunctionParser(Model sbmlModel, lcsb.mapviewer.model.map.model.Model minervaModel) {
     super(sbmlModel, minervaModel);
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParameterExporter.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParameterExporter.java
index ab52589200989af11b4c3865caad90415f14aa4f..684910f667de3af3dcba1c9b79887ac1c5b278a2 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParameterExporter.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParameterExporter.java
@@ -1,13 +1,13 @@
 package lcsb.mapviewer.converter.model.sbml;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.sbml.jsbml.Parameter;
 
 import lcsb.mapviewer.model.map.kinetics.SbmlParameter;
 import lcsb.mapviewer.model.map.model.Model;
 
 public class SbmlParameterExporter {
-  Logger logger = Logger.getLogger(SbmlParameterExporter.class);
+  Logger logger = LogManager.getLogger(SbmlParameterExporter.class);
   private Model minervaModel;
 
   public SbmlParameterExporter(lcsb.mapviewer.model.map.model.Model minervaModel) {
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParameterParser.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParameterParser.java
index 9669f5992b25517b795685a2174f2a7d08d3e99e..836a91d667fbb90286b23fbb92d4386dc825fce3 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParameterParser.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParameterParser.java
@@ -4,7 +4,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.sbml.jsbml.ListOf;
 import org.sbml.jsbml.Model;
 import org.sbml.jsbml.QuantityWithUnit;
@@ -12,7 +12,7 @@ import org.sbml.jsbml.QuantityWithUnit;
 import lcsb.mapviewer.model.map.kinetics.SbmlParameter;
 
 public class SbmlParameterParser extends SbmlBioEntityParser {
-  Logger logger = Logger.getLogger(SbmlParameterParser.class);
+  Logger logger = LogManager.getLogger(SbmlParameterParser.class);
 
   public SbmlParameterParser(Model sbmlModel, lcsb.mapviewer.model.map.model.Model minervaModel) {
     super(sbmlModel, minervaModel);
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParser.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParser.java
index d5734ee056b38f5e765553677a5073b04e0cf664..200685a27e77c0d1f277f3c7092c5daf5a656b04 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParser.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParser.java
@@ -7,7 +7,7 @@ import java.util.Set;
 import javax.xml.stream.XMLStreamException;
 
 import org.apache.commons.io.FilenameUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.sbml.jsbml.SBMLDocument;
 import org.sbml.jsbml.SBMLReader;
 import org.sbml.jsbml.ext.SBasePlugin;
@@ -48,7 +48,7 @@ public class SbmlParser extends Converter {
   /**
    * Default class logger.
    */
-  Logger logger = Logger.getLogger(SbmlParser.class);
+  Logger logger = LogManager.getLogger(SbmlParser.class);
 
   boolean provideDefaults = true;
 
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/compartment/SbmlCompartmentExporter.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/compartment/SbmlCompartmentExporter.java
index 58a038499c1a00e74a0a0ec1771b25ccc489c38c..1467cae134da8f6ec3bbfb5ec6afe381197342c7 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/compartment/SbmlCompartmentExporter.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/compartment/SbmlCompartmentExporter.java
@@ -5,7 +5,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.sbml.jsbml.Model;
 import org.sbml.jsbml.ext.layout.AbstractReferenceGlyph;
 import org.sbml.jsbml.ext.layout.BoundingBox;
@@ -33,7 +33,7 @@ public class SbmlCompartmentExporter extends SbmlElementExporter<Compartment, or
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(SbmlCompartmentExporter.class);
+  private static Logger logger = LogManager.getLogger(SbmlCompartmentExporter.class);
 
   public SbmlCompartmentExporter(Model sbmlModel, lcsb.mapviewer.model.map.model.Model minervaModel,
       Collection<SbmlExtension> sbmlExtensions) {
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/compartment/SbmlCompartmentParser.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/compartment/SbmlCompartmentParser.java
index d085b74cc1b399f2ae7da2147cddf1b719fef97b..13f0932d32763dda813eae450e9a8f041135a10b 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/compartment/SbmlCompartmentParser.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/compartment/SbmlCompartmentParser.java
@@ -5,7 +5,7 @@ import java.awt.geom.Point2D;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.sbml.jsbml.ListOf;
 import org.sbml.jsbml.Model;
 import org.sbml.jsbml.ext.layout.AbstractReferenceGlyph;
@@ -27,7 +27,7 @@ public class SbmlCompartmentParser extends SbmlElementParser<org.sbml.jsbml.Comp
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(SbmlCompartmentParser.class);
+  private static Logger logger = LogManager.getLogger(SbmlCompartmentParser.class);
 
   public SbmlCompartmentParser(Model sbmlModel, lcsb.mapviewer.model.map.model.Model minervaModel) {
     super(sbmlModel, minervaModel);
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/extension/multi/MultiPackageNamingUtils.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/extension/multi/MultiPackageNamingUtils.java
index 1ef585cd49603525b741891f7130b9324ee41ae0..8dc5e8e95bf508caae8ae3ed52fc3895bc6b5f4e 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/extension/multi/MultiPackageNamingUtils.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/extension/multi/MultiPackageNamingUtils.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.converter.model.sbml.extension.multi;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.sbml.jsbml.ext.multi.MultiSpeciesType;
 
 import lcsb.mapviewer.model.map.species.Element;
@@ -23,7 +23,7 @@ public final class MultiPackageNamingUtils {
    * Default logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(MultiPackageNamingUtils.class);
+  private static Logger logger = LogManager.getLogger(MultiPackageNamingUtils.class);
 
   private static final String MINERVA_MODIFICATION_TYPE_PREFIX = "minerva_modification_type_";
 
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SBOTermModifierType.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SBOTermModifierType.java
index a11b9e26e549ee41d678c387b5767bedf1ee7bfe..e0ebcd078a88eaf761db12274a616d9f4a2350fe 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SBOTermModifierType.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SBOTermModifierType.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.model.sbml.reaction;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.map.modifier.Catalysis;
 import lcsb.mapviewer.model.map.modifier.Inhibition;
@@ -24,7 +24,7 @@ public enum SBOTermModifierType {
   UNKNOWN_INHIBITION(UnknownInhibition.class, new String[] { "SBO:0000536" }),
   ;
 
-  private static Logger logger = Logger.getLogger(SBOTermModifierType.class);
+  private static Logger logger = LogManager.getLogger(SBOTermModifierType.class);
   private List<String> sboTerms = new ArrayList<>();
   Class<? extends Modifier> clazz;
 
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SBOTermReactionType.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SBOTermReactionType.java
index dcc34214e639d978a66d1734d47ccc38e88a0721..c9b3dd222ae384aae47b7a7e80a5dd066a25a590 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SBOTermReactionType.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SBOTermReactionType.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.model.sbml.reaction;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.map.reaction.Reaction;
 import lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction;
@@ -64,7 +64,7 @@ public enum SBOTermReactionType {
   UNKNOWN_TRANSITION(UnknownTransitionReaction.class, new String[] { "SBO:0000396" }),
   ;
 
-  private static Logger logger = Logger.getLogger(SBOTermReactionType.class);
+  private static Logger logger = LogManager.getLogger(SBOTermReactionType.class);
   private List<String> sboTerms = new ArrayList<>();
   Class<? extends Reaction> clazz;
 
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionExporter.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionExporter.java
index 778ae75c77f920d640d05fb05e723a860a2a66ac..ebc4091132d32be99d20e2aee0210a0f74fad8ee 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionExporter.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionExporter.java
@@ -10,7 +10,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.sbml.jsbml.ASTNode;
 import org.sbml.jsbml.KineticLaw;
 import org.sbml.jsbml.LocalParameter;
@@ -59,7 +59,7 @@ public class SbmlReactionExporter extends SbmlBioEntityExporter<Reaction, org.sb
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(SbmlReactionExporter.class);
+  private static Logger logger = LogManager.getLogger(SbmlReactionExporter.class);
 
   private SbmlBioEntityExporter<lcsb.mapviewer.model.map.species.Species, Species> speciesExporter;
 
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionParser.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionParser.java
index f9a80ab38f4e46cd78aa34ec941a8fba050865f7..7d97e569775e30c2c02ffbdc7fa4f2f2cad19f34 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionParser.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionParser.java
@@ -11,7 +11,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.sbml.jsbml.KineticLaw;
 import org.sbml.jsbml.ListOf;
 import org.sbml.jsbml.LocalParameter;
@@ -70,7 +70,7 @@ import lcsb.mapviewer.model.map.species.Species;
 import lcsb.mapviewer.modelutils.map.ElementUtils;
 
 public class SbmlReactionParser extends SbmlBioEntityParser {
-  Logger logger = Logger.getLogger(SbmlReactionParser.class);
+  Logger logger = LogManager.getLogger(SbmlReactionParser.class);
 
   ElementUtils eu = new ElementUtils();
 
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SBOTermSpeciesType.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SBOTermSpeciesType.java
index fdd3cd31ae9773f76f20d812aec35642b4263ad4..1be4927e69f16c5a3e35862ada022ef03732f2fd 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SBOTermSpeciesType.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SBOTermSpeciesType.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter.model.sbml.species;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.map.species.AntisenseRna;
 import lcsb.mapviewer.model.map.species.Complex;
@@ -38,7 +38,7 @@ public enum SBOTermSpeciesType {
   UNKNOWN(Unknown.class, new String[] { "SBO:0000285" }),
   ;
 
-  private static Logger logger = Logger.getLogger(SBOTermSpeciesType.class);
+  private static Logger logger = LogManager.getLogger(SBOTermSpeciesType.class);
   private List<String> sboTerms = new ArrayList<>();
   Class<? extends Species> clazz;
 
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporter.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporter.java
index 2a101b19fa746acb56a5c4ac97d12766f4ab3a32..0dd1cf3936478e320149c94e368ca0f489016841 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporter.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporter.java
@@ -9,7 +9,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.sbml.jsbml.Model;
 import org.sbml.jsbml.ext.layout.AbstractReferenceGlyph;
 import org.sbml.jsbml.ext.layout.BoundingBox;
@@ -67,7 +67,7 @@ public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.j
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(SbmlSpeciesExporter.class);
+  private static Logger logger = LogManager.getLogger(SbmlSpeciesExporter.class);
 
   private SbmlCompartmentExporter compartmentExporter;
 
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParser.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParser.java
index a86c2ca2eff2f1ed927fd9611f4e318ac790bc12..2cc9689aefccae40985c43622674c7c93d916693 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParser.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParser.java
@@ -5,7 +5,7 @@ import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.sbml.jsbml.ListOf;
 import org.sbml.jsbml.Model;
 import org.sbml.jsbml.ext.layout.AbstractReferenceGlyph;
@@ -60,7 +60,7 @@ import lcsb.mapviewer.model.map.species.field.TranscriptionSite;
 import lcsb.mapviewer.modelutils.map.ElementUtils;
 
 public class SbmlSpeciesParser extends SbmlElementParser<org.sbml.jsbml.Species> {
-  Logger logger = Logger.getLogger(SbmlSpeciesParser.class);
+  Logger logger = LogManager.getLogger(SbmlSpeciesParser.class);
 
   private static String ARTIFITIAL_SINK_ID = "sbml_artifitial_sink";
   private static String ARTIFITIAL_SOURCE_ID = "sbml_artifitial_source";
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/units/SbmlUnitExporter.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/units/SbmlUnitExporter.java
index efbfca1d156cf55d92c5e2de6aa54c2d75a5b20c..862d14cb43c8697648d859288bc79c00a615988c 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/units/SbmlUnitExporter.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/units/SbmlUnitExporter.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.converter.model.sbml.units;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.sbml.jsbml.Unit;
 import org.sbml.jsbml.UnitDefinition;
 
@@ -10,7 +10,7 @@ import lcsb.mapviewer.model.map.model.Model;
 
 public class SbmlUnitExporter {
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(SbmlUnitExporter.class);
+  private static Logger logger = LogManager.getLogger(SbmlUnitExporter.class);
   private Model minervaModel;
   private org.sbml.jsbml.Model model;
 
diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/units/SbmlUnitsParser.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/units/SbmlUnitsParser.java
index c7411879da61918e4bf5319abf0cc41af5912328..22301f7a120263b3f9b0928a4361b78e5ecef766 100644
--- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/units/SbmlUnitsParser.java
+++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/units/SbmlUnitsParser.java
@@ -4,7 +4,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.sbml.jsbml.ListOf;
 import org.sbml.jsbml.Model;
 import org.sbml.jsbml.Unit;
@@ -14,7 +14,7 @@ import lcsb.mapviewer.model.map.kinetics.SbmlUnit;
 import lcsb.mapviewer.model.map.kinetics.SbmlUnitTypeFactor;
 
 public class SbmlUnitsParser extends SbmlBioEntityParser {
-  Logger logger = Logger.getLogger(SbmlUnitsParser.class);
+  Logger logger = LogManager.getLogger(SbmlUnitsParser.class);
 
   public SbmlUnitsParser(Model sbmlModel, lcsb.mapviewer.model.map.model.Model minervaModel) {
     super(sbmlModel, minervaModel);
diff --git a/converter-sbml/src/main/resources/log4j.properties b/converter-sbml/src/main/resources/log4j.properties
deleted file mode 100644
index a784f69dbe2aa1d6bf3d81fe0083ea25e433fa94..0000000000000000000000000000000000000000
--- a/converter-sbml/src/main/resources/log4j.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-#Set root logger 's level and its appender to an appender called CONSOLE which is defined below.
-log4j.rootLogger=info, SBML_CONSOLE
-
-#Set the behavior of the CONSOLE appender 
-log4j.appender.SBML_CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.SBML_CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.SBML_CONSOLE.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-#log4j.appender.CONSOLE.layout.ConversionPattern=%m%n
-
-
-#Set the behavior of the FILE appender 
-log4j.appender.R=org.apache.log4j.FileAppender
-log4j.appender.R.File=${catalina.home}/logs/MapViewer.log
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-
-
-log4j.logger.org.springframework=warn
-log4j.logger.org.hibernate=warn
-log4j.logger.lcsb=debug
-log4j.logger.lcsb.mapviewer.common.comparator=info
diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/CellDesignerToMultiExportTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/CellDesignerToMultiExportTest.java
index 143ef22ff0505708228af7151b70803d8a44798f..8f1b1876ffcaf1df37c22d26671d2efebe30abc2 100644
--- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/CellDesignerToMultiExportTest.java
+++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/CellDesignerToMultiExportTest.java
@@ -12,7 +12,7 @@ import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Collection;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -27,7 +27,7 @@ import lcsb.mapviewer.model.map.model.ModelComparator;
 @RunWith(Parameterized.class)
 public class CellDesignerToMultiExportTest {
 
-  static Logger logger = Logger.getLogger(CellDesignerToMultiExportTest.class.getName());
+  static Logger logger = LogManager.getLogger(CellDesignerToMultiExportTest.class.getName());
 
   private Path filePath;
 
diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/CopasiImportTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/CopasiImportTest.java
index 224f3b60e4d6bdefc9d093bc5507b91539ea25ea..d98c3a97d39be527ca627ec1da55467fc713eb93 100644
--- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/CopasiImportTest.java
+++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/CopasiImportTest.java
@@ -9,7 +9,7 @@ import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Collection;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -22,7 +22,7 @@ import lcsb.mapviewer.model.map.model.Model;
 @RunWith(Parameterized.class)
 public class CopasiImportTest extends SbmlTestFunctions{
 
-  static Logger logger = Logger.getLogger(CopasiImportTest.class.getName());
+  static Logger logger = LogManager.getLogger(CopasiImportTest.class.getName());
 
   private Path filePath;
 
diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/ElementPropertiesExport.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/ElementPropertiesExport.java
index b54fbbd2cc63aa6dd7c1e98bd422a8ab6e21902d..20743bf242f202dde67b15393500dcadc968dfee 100644
--- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/ElementPropertiesExport.java
+++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/ElementPropertiesExport.java
@@ -8,7 +8,7 @@ import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Collection;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -24,7 +24,7 @@ import lcsb.mapviewer.model.map.species.Species;
 @RunWith(Parameterized.class)
 public class ElementPropertiesExport extends SbmlTestFunctions {
 
-  static Logger logger = Logger.getLogger(ElementPropertiesExport.class.getName());
+  static Logger logger = LogManager.getLogger(ElementPropertiesExport.class.getName());
 
   private Model model;
 
diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/ElementPropertiesExportToLayoutTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/ElementPropertiesExportToLayoutTest.java
index a2aa989cf3beaa556b11a829b06afdbaabdb112f..d9ed2f12c7b5ccb3189fd0922d427db43c968afa 100644
--- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/ElementPropertiesExportToLayoutTest.java
+++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/ElementPropertiesExportToLayoutTest.java
@@ -8,7 +8,7 @@ import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Collection;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -24,7 +24,7 @@ import lcsb.mapviewer.model.map.species.Species;
 @RunWith(Parameterized.class)
 public class ElementPropertiesExportToLayoutTest extends SbmlTestFunctions {
 
-  static Logger logger = Logger.getLogger(ElementPropertiesExportToLayoutTest.class.getName());
+  static Logger logger = LogManager.getLogger(ElementPropertiesExportToLayoutTest.class.getName());
 
   private Model model;
 
diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/ElementPropertiesExportToMultiTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/ElementPropertiesExportToMultiTest.java
index 55f289eda0e3e4532bacbb74aeb058fecee04361..50cb4b1f7ca95cefa988ff5ad31cb930f00888ab 100644
--- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/ElementPropertiesExportToMultiTest.java
+++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/ElementPropertiesExportToMultiTest.java
@@ -9,7 +9,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -25,7 +25,7 @@ import lcsb.mapviewer.model.map.species.Species;
 @RunWith(Parameterized.class)
 public class ElementPropertiesExportToMultiTest extends SbmlTestFunctions {
 
-  static Logger logger = Logger.getLogger(ElementPropertiesExportToMultiTest.class.getName());
+  static Logger logger = LogManager.getLogger(ElementPropertiesExportToMultiTest.class.getName());
 
   private Model model;
 
diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/GenericSbmlParserTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/GenericSbmlParserTest.java
index bb885faf54552561af6c048f35247b3945a341fa..b835a13954e3e637d2d56c1594ff0417927f3d92 100644
--- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/GenericSbmlParserTest.java
+++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/GenericSbmlParserTest.java
@@ -14,7 +14,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -33,7 +33,7 @@ import lcsb.mapviewer.model.map.model.ModelComparator;
 @RunWith(Parameterized.class)
 public class GenericSbmlParserTest {
 
-  static Logger logger = Logger.getLogger(GenericSbmlParserTest.class.getName());
+  static Logger logger = LogManager.getLogger(GenericSbmlParserTest.class.getName());
 
   private Path filePath;
 
diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/GenericSbmlToXmlParserTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/GenericSbmlToXmlParserTest.java
index a01e176e6cf855366a8502e6c3e95f0d9235f796..965e38c3f09632dbfb4a672115bd32916a874356 100644
--- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/GenericSbmlToXmlParserTest.java
+++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/GenericSbmlToXmlParserTest.java
@@ -12,7 +12,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -25,7 +25,7 @@ import lcsb.mapviewer.model.map.model.ModelComparator;
 @RunWith(Parameterized.class)
 public class GenericSbmlToXmlParserTest {
 
-  static Logger logger = Logger.getLogger(GenericSbmlToXmlParserTest.class.getName());
+  static Logger logger = LogManager.getLogger(GenericSbmlToXmlParserTest.class.getName());
 
   private Path filePath;
 
diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/MultiParserTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/MultiParserTest.java
index e73e7e2fa25e1063d7dc599b23c1c7da2a66c2b4..0772d2988cd0003b081aaf21dd2e10ecf7370552 100644
--- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/MultiParserTest.java
+++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/MultiParserTest.java
@@ -14,7 +14,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -32,7 +32,7 @@ import lcsb.mapviewer.model.map.model.ModelComparator;
 @RunWith(Parameterized.class)
 public class MultiParserTest {
 
-  static Logger logger = Logger.getLogger(MultiParserTest.class.getName());
+  static Logger logger = LogManager.getLogger(MultiParserTest.class.getName());
 
   private Path filePath;
 
diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/ReactionPropertiesExportToMultiTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/ReactionPropertiesExportToMultiTest.java
index a6e7faca96ceeff0c3a15e8cb67d64acf0daac83..dd4c81fe20f8e65c415c8c63066588aa69d9ee2f 100644
--- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/ReactionPropertiesExportToMultiTest.java
+++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/ReactionPropertiesExportToMultiTest.java
@@ -10,7 +10,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -33,7 +33,7 @@ import lcsb.mapviewer.model.map.species.Ion;
 @RunWith(Parameterized.class)
 public class ReactionPropertiesExportToMultiTest {
 
-  static Logger logger = Logger.getLogger(ReactionPropertiesExportToMultiTest.class.getName());
+  static Logger logger = LogManager.getLogger(ReactionPropertiesExportToMultiTest.class.getName());
 
   private Model model;
   private static String reactionId = "reactionId";
diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlExporterFromCellDesignerTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlExporterFromCellDesignerTest.java
index 72e1b95006b69b8f357af810cfc341ca75aabc45..3bdf0a5b846f9fdc723767c9c62263f0d1cffcde 100644
--- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlExporterFromCellDesignerTest.java
+++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlExporterFromCellDesignerTest.java
@@ -4,7 +4,7 @@ import static org.junit.Assert.assertEquals;
 
 import java.io.ByteArrayInputStream;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 
 import lcsb.mapviewer.converter.ConverterParams;
@@ -14,7 +14,7 @@ import lcsb.mapviewer.model.map.model.ModelComparator;
 import lcsb.mapviewer.model.map.reaction.Reaction;
 
 public class SbmlExporterFromCellDesignerTest extends SbmlTestFunctions {
-  Logger logger = Logger.getLogger(SbmlExporterFromCellDesignerTest.class);
+  Logger logger = LogManager.getLogger(SbmlExporterFromCellDesignerTest.class);
 
   CellDesignerXmlParser cellDesignerXmlParser = new CellDesignerXmlParser();
 
diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlExporterTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlExporterTest.java
index f227aee44aff23d5baa30531fee097826a42af69..b1b644d16e3b9b59ca0868273afc8e62e1cbc8cd 100644
--- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlExporterTest.java
+++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlExporterTest.java
@@ -14,7 +14,7 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.reflections.Reflections;
 import org.sbml.jsbml.SBMLDocument;
@@ -44,7 +44,7 @@ import lcsb.mapviewer.model.map.species.field.PositionToCompartment;
 import lcsb.mapviewer.model.map.species.field.Residue;
 
 public class SbmlExporterTest extends SbmlTestFunctions {
-  Logger logger = Logger.getLogger(SbmlExporterTest.class);
+  Logger logger = LogManager.getLogger(SbmlExporterTest.class);
 
   ModelComparator comparator = new ModelComparator();
 
diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlPareserForInvalidReactionTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlPareserForInvalidReactionTest.java
index f8c7079da0a9e2ee87da6d7fa04d6f11d1e4d368..4f4f0f41ee5c3b5e6a26525dee1eda23edd4a603 100644
--- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlPareserForInvalidReactionTest.java
+++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlPareserForInvalidReactionTest.java
@@ -9,7 +9,7 @@ import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Collection;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -22,7 +22,7 @@ import lcsb.mapviewer.converter.InvalidInputDataExecption;
 @RunWith(Parameterized.class)
 public class SbmlPareserForInvalidReactionTest {
 
-  static Logger logger = Logger.getLogger(SbmlPareserForInvalidReactionTest.class.getName());
+  static Logger logger = LogManager.getLogger(SbmlPareserForInvalidReactionTest.class.getName());
 
   private Path filePath;
 
diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlParserTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlParserTest.java
index f7ea971b006e343fdb4bfeb01418ef669cb2add7..8147576f8a6781c625efb6a78b79219d3ee4d0d2 100644
--- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlParserTest.java
+++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlParserTest.java
@@ -9,7 +9,7 @@ import java.io.FileNotFoundException;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 
 import lcsb.mapviewer.commands.CreateHierarchyCommand;
@@ -27,7 +27,7 @@ import lcsb.mapviewer.model.map.species.GenericProtein;
 import lcsb.mapviewer.model.map.species.Species;
 
 public class SbmlParserTest extends SbmlTestFunctions {
-  Logger logger = Logger.getLogger(SbmlParserTest.class);
+  Logger logger = LogManager.getLogger(SbmlParserTest.class);
   SbmlParser parser = new SbmlParser();
 
   @Test
diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlTestFunctions.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlTestFunctions.java
index 4b9e2610e2dc4d65ad36854b5718717bf59e2732..40f2b73d8a97ccf6f4dcd562becc107957a8ee77 100644
--- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlTestFunctions.java
+++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/SbmlTestFunctions.java
@@ -9,11 +9,11 @@ import java.nio.file.Files;
 import java.util.List;
 
 import org.apache.log4j.Logger;
-import org.apache.log4j.spi.LoggingEvent;
+import org.apache.logging.log4j.core.LogEvent;
 import org.junit.After;
 import org.junit.Before;
 
-import lcsb.mapviewer.common.EventStorageLoggerAppender;
+import lcsb.mapviewer.common.MinervaLoggerAppender;
 import lcsb.mapviewer.converter.ConverterParams;
 import lcsb.mapviewer.converter.graphics.AbstractImageGenerator;
 import lcsb.mapviewer.converter.graphics.NormalImageGenerator;
@@ -33,7 +33,7 @@ import lcsb.mapviewer.model.map.species.GenericProtein;
 public class SbmlTestFunctions {
   private Logger logger = Logger.getLogger(SbmlTestFunctions .class);
   
-  private EventStorageLoggerAppender appender;
+  private MinervaLoggerAppender appender;
 
   private static int identifierCounter = 0;
 
@@ -46,17 +46,16 @@ public class SbmlTestFunctions {
 
   @Before
   public final void _setUp() throws Exception {
-    Logger.getRootLogger().removeAppender(appender);
-    appender = new EventStorageLoggerAppender();
-    Logger.getRootLogger().addAppender(appender);
+    MinervaLoggerAppender.unregisterLogEventStorage(appender);
+    appender = MinervaLoggerAppender.createAppender();
   }
 
   @After
   public final void _tearDown() throws Exception {
-    Logger.getRootLogger().removeAppender(appender);
+    MinervaLoggerAppender.unregisterLogEventStorage(appender);
   }
 
-  protected List<LoggingEvent> getWarnings() {
+  protected List<LogEvent> getWarnings() {
     return appender.getWarnings();
   }
 
diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/compartment/SbmlCompartmentParserTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/compartment/SbmlCompartmentParserTest.java
index 5b4e06584df173bb4c98b25cff3943c1777a56d0..7c4274409bae2d5bc1f2e94ee9b0e083bd1031dd 100644
--- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/compartment/SbmlCompartmentParserTest.java
+++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/compartment/SbmlCompartmentParserTest.java
@@ -5,7 +5,7 @@ import static org.junit.Assert.assertEquals;
 import java.awt.geom.Point2D;
 import java.io.FileNotFoundException;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 
 import lcsb.mapviewer.common.Configuration;
@@ -16,7 +16,7 @@ import lcsb.mapviewer.model.map.compartment.Compartment;
 import lcsb.mapviewer.model.map.model.Model;
 
 public class SbmlCompartmentParserTest {
-  Logger logger = Logger.getLogger(SbmlCompartmentParserTest.class);
+  Logger logger = LogManager.getLogger(SbmlCompartmentParserTest.class);
 
   SbmlParser parser = new SbmlParser();
 
diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionExportArrowType.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionExportArrowType.java
index 43109e817f343c84baed6f067bd4e5ac271da0a2..83da5ff66570715f174be9cf48a26896dbc4c8f9 100644
--- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionExportArrowType.java
+++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionExportArrowType.java
@@ -8,7 +8,7 @@ import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
 import java.util.Collection;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -46,7 +46,7 @@ import lcsb.mapviewer.modelutils.map.ElementUtils;
 public class SbmlReactionExportArrowType {
 
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(SbmlReactionExportArrowType.class);
+  private static Logger logger = LogManager.getLogger(SbmlReactionExportArrowType.class);
 
   SbmlParser parser = new SbmlParser();
   SbmlExporter exporter = new SbmlExporter();
diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionParserTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionParserTest.java
index b89a74be18f2854218c8ddc7bb9c2a50fa590fb5..a7f0842a8e98d9d0622ee820c679f79940a125fd 100644
--- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionParserTest.java
+++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/reaction/SbmlReactionParserTest.java
@@ -6,7 +6,7 @@ import static org.junit.Assert.assertTrue;
 
 import java.io.FileNotFoundException;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 
 import lcsb.mapviewer.converter.ConverterParams;
@@ -36,7 +36,7 @@ import lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction;
 import lcsb.mapviewer.model.map.species.GenericProtein;
 
 public class SbmlReactionParserTest extends SbmlTestFunctions {
-  Logger logger = Logger.getLogger(SbmlReactionParserTest.class);
+  Logger logger = LogManager.getLogger(SbmlReactionParserTest.class);
   SbmlParser parser = new SbmlParser();
 
   @Test
diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporterTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporterTest.java
index b7253acab0fafdfff21b8ea07ae75b81dc85cf0a..642f06ed561af31ad79691cf79773b028d83f02d 100644
--- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporterTest.java
+++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporterTest.java
@@ -6,7 +6,7 @@ import static org.junit.Assert.assertFalse;
 import java.util.Arrays;
 import java.util.Collection;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.sbml.jsbml.SBMLDocument;
 
@@ -24,7 +24,7 @@ import lcsb.mapviewer.model.map.species.Species;
 
 public class SbmlSpeciesExporterTest extends SbmlTestFunctions {
 
-  Logger logger = Logger.getLogger(SbmlSpeciesExporterTest.class);
+  Logger logger = LogManager.getLogger(SbmlSpeciesExporterTest.class);
 
   org.sbml.jsbml.Model sbmlModel;
 
diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParserTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParserTest.java
index 320f64b88aaef466070471fa289582caa970680d..953cd375d4f2a5b483eb0d44fd0271310ef80dde 100644
--- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParserTest.java
+++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParserTest.java
@@ -5,7 +5,7 @@ import static org.junit.Assert.assertTrue;
 
 import java.io.FileNotFoundException;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 
 import lcsb.mapviewer.common.geometry.ColorParser;
@@ -30,7 +30,7 @@ import lcsb.mapviewer.model.map.species.Species;
 import lcsb.mapviewer.model.map.species.Unknown;
 
 public class SbmlSpeciesParserTest {
-  Logger logger = Logger.getLogger(SbmlSpeciesParserTest.class);
+  Logger logger = LogManager.getLogger(SbmlSpeciesParserTest.class);
   SbmlParser parser = new SbmlParser();
 
   ColorParser colorParser = new ColorParser();
diff --git a/converter-sbml/src/test/resources/log4j.properties b/converter-sbml/src/test/resources/log4j.properties
deleted file mode 100644
index 9ed911ce8c108e54fc9edbe563b91ad1de65736c..0000000000000000000000000000000000000000
--- a/converter-sbml/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,48 +0,0 @@
-#Set root logger 's level and its appender to an appender called CONSOLE which is defined below.
-log4j.rootLogger=info, SBML_CONSOLE
-
-#Set the behavior of the CONSOLE appender 
-log4j.appender.SBML_CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.SBML_CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.SBML_CONSOLE.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-#log4j.appender.CONSOLE.layout.ConversionPattern=%m%n
-
-
-#Set the behavior of the FILE appender 
-log4j.appender.R=org.apache.log4j.FileAppender
-log4j.appender.R.File=${catalina.home}/logs/MapViewer.log
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-
-
-log4j.logger.org.springframework=warn
-log4j.logger.org.hibernate=warn
-log4j.logger.org.sbml.jsbml=error
-log4j.logger.lcsb=debug
-log4j.logger.lcsb.mapviewer.common.Comparator=info
-
-log4j.logger.lcsb.mapviewer.model.map.species.ElementComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.SpeciesComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.SimpleMoleculeComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.ProteinComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.AssociatedElementComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.ComplexSpeciesComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.AssociatedElementComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.PhenotypeComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.fields.AssociatedElementComparator=info
-
-log4j.logger.lcsb.mapviewer.model.map.layout.alias.SpeciesAliasComparator=info
-log4j.logger.lcsb.mapviewer.model.map.layout.alias.AliasComparator=info
-log4j.logger.lcsb.mapviewer.model.map.layout.alias.ComplexAliasComparator=info
-log4j.logger.lcsb.mapviewer.model.map.layout.alias.CompartmentAliasComparator=info
-
-log4j.logger.lcsb.mapviewer.model.map.reaction.ReactionNodeComparator=info
-log4j.logger.lcsb.mapviewer.model.map.reaction.ReactionComparator=info
-log4j.logger.lcsb.mapviewer.model.map.reaction.NodeOperatorComparator=info
-log4j.logger.lcsb.mapviewer.model.map.reaction.AbstractNodeComparator=info
-
-log4j.logger.lcsb.mapviewer.model.map.model.ModelComparator=info
-
-log4j.logger.lcsb.mapviewer.model.graphics.PolylineDataComparator=info
-
-log4j.logger.lcsb.mapviewer.model.map.kinetics.SbmlUnitComparator = info
\ No newline at end of file
diff --git a/converter-sbml/src/test/resources/log4j2.properties b/converter-sbml/src/test/resources/log4j2.properties
new file mode 100644
index 0000000000000000000000000000000000000000..b5eaa32682d177bf266eb6ed4831b4e8f4b9135d
--- /dev/null
+++ b/converter-sbml/src/test/resources/log4j2.properties
@@ -0,0 +1,25 @@
+rootLogger.level = INFO
+appenders = console
+
+appender.console.type = Console
+appender.console.name = STDOUT
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %d %5p [%t] (%F:%L) - %m%n
+
+rootLogger.appenderRefs = console
+
+rootLogger.appenderRef.console.ref = STDOUT
+
+logger.minerva.name = lcsb
+logger.minerva.level = debug
+logger.minerva-persist.name = lcsb.mapviewer.persist.DbUtils
+logger.minerva-persist.level = info
+logger.minerva-cache.name = lcsb.mapviewer.annotation.cache
+logger.minerva-cache.level = info
+
+
+logger.springframework.name = org.springframework
+logger.springframework.level = warn
+
+logger.hibernate.name = org.hibernate
+logger.hibernate.level = warn
diff --git a/converter/src/main/java/lcsb/mapviewer/converter/ComplexZipConverter.java b/converter/src/main/java/lcsb/mapviewer/converter/ComplexZipConverter.java
index 9c734eeac9204e140c1c2426a88818c52734f114..2fbbc1f86008cffa739a4317b33a5ed049408809 100644
--- a/converter/src/main/java/lcsb/mapviewer/converter/ComplexZipConverter.java
+++ b/converter/src/main/java/lcsb/mapviewer/converter/ComplexZipConverter.java
@@ -16,7 +16,7 @@ import java.util.zip.ZipFile;
 
 import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.io.IOUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.common.exception.InvalidClassException;
@@ -57,7 +57,7 @@ public class ComplexZipConverter {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(ComplexZipConverter.class);
+  private static Logger logger = LogManager.getLogger(ComplexZipConverter.class);
 
   /**
    * Class used to create single submap from a file.
diff --git a/converter/src/main/java/lcsb/mapviewer/converter/ComplexZipConverterParams.java b/converter/src/main/java/lcsb/mapviewer/converter/ComplexZipConverterParams.java
index 4d059ffe90bbe4644f6e1c1c52249ae2b6a4f905..fb5dc23bfb4aca5e2a7b04b0e3af393d40cec05e 100644
--- a/converter/src/main/java/lcsb/mapviewer/converter/ComplexZipConverterParams.java
+++ b/converter/src/main/java/lcsb/mapviewer/converter/ComplexZipConverterParams.java
@@ -10,7 +10,7 @@ import java.util.Set;
 import java.util.zip.ZipFile;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.converter.zip.ZipEntryFile;
 import lcsb.mapviewer.model.cache.UploadedFileEntry;
@@ -28,7 +28,7 @@ public class ComplexZipConverterParams {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private final Logger logger = Logger.getLogger(ComplexZipConverterParams.class);
+  private final Logger logger = LogManager.getLogger(ComplexZipConverterParams.class);
 
   /**
    * Zip file where all maps are stored.
diff --git a/converter/src/main/java/lcsb/mapviewer/converter/GlyphParser.java b/converter/src/main/java/lcsb/mapviewer/converter/GlyphParser.java
index 1e7d480fbb30366b80e175b335877498737a89ef..79d5062a22d7c6c5138caa5a0aaa42a6b0577953 100644
--- a/converter/src/main/java/lcsb/mapviewer/converter/GlyphParser.java
+++ b/converter/src/main/java/lcsb/mapviewer/converter/GlyphParser.java
@@ -6,7 +6,7 @@ import java.util.zip.ZipFile;
 
 import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.io.IOUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.converter.zip.GlyphZipEntryFile;
 import lcsb.mapviewer.model.cache.UploadedFileEntry;
@@ -24,7 +24,7 @@ public class GlyphParser {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private final Logger logger = Logger.getLogger(GlyphParser.class);
+  private final Logger logger = LogManager.getLogger(GlyphParser.class);
 
   /**
    * Method that parse zip entry and creates a {@link Glyph} from it.
diff --git a/converter/src/main/java/lcsb/mapviewer/converter/OverviewParser.java b/converter/src/main/java/lcsb/mapviewer/converter/OverviewParser.java
index adcf556305bbe676bd7c3b6e15442f94959994c6..6bef70719c233e02d23349a7a5c85c8bbb5fdd58 100644
--- a/converter/src/main/java/lcsb/mapviewer/converter/OverviewParser.java
+++ b/converter/src/main/java/lcsb/mapviewer/converter/OverviewParser.java
@@ -20,7 +20,7 @@ import java.util.zip.ZipFile;
 import javax.imageio.ImageIO;
 
 import org.apache.commons.io.FilenameUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.converter.zip.ImageZipEntryFile;
@@ -108,7 +108,7 @@ public class OverviewParser {
   /**
    * Default class logger.
    */
-  private final Logger logger = Logger.getLogger(OverviewParser.class);
+  private final Logger logger = LogManager.getLogger(OverviewParser.class);
 
   /**
    * Method that parse zip file and creates list of {@link OverviewImage images}
diff --git a/converter/src/main/java/lcsb/mapviewer/converter/ProjectFactory.java b/converter/src/main/java/lcsb/mapviewer/converter/ProjectFactory.java
index dd5c55cbb876971cc8aaaa549b1ec06fc8b8a994..ef7b2e596128795c93ed6a75f4a3e0798887206e 100644
--- a/converter/src/main/java/lcsb/mapviewer/converter/ProjectFactory.java
+++ b/converter/src/main/java/lcsb/mapviewer/converter/ProjectFactory.java
@@ -9,7 +9,7 @@ import java.util.Set;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.converter.zip.GlyphZipEntryFile;
@@ -28,7 +28,7 @@ public class ProjectFactory {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(ProjectFactory.class);
+  private Logger logger = LogManager.getLogger(ProjectFactory.class);
 
   private ComplexZipConverter converter;
 
diff --git a/converter/src/main/java/lcsb/mapviewer/converter/ZIndexPopulator.java b/converter/src/main/java/lcsb/mapviewer/converter/ZIndexPopulator.java
index e206f7ad3abd7f3d6ce48e3a826325424402c4dd..c491491e189b0b151b222d8d1f8e9a086114f5e6 100644
--- a/converter/src/main/java/lcsb/mapviewer/converter/ZIndexPopulator.java
+++ b/converter/src/main/java/lcsb/mapviewer/converter/ZIndexPopulator.java
@@ -4,7 +4,7 @@ import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Configuration;
 import lcsb.mapviewer.common.comparator.DoubleComparator;
@@ -27,7 +27,7 @@ import lcsb.mapviewer.model.map.species.Species;
 public class ZIndexPopulator {
 
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(ZIndexPopulator.class);
+  private static Logger logger = LogManager.getLogger(ZIndexPopulator.class);
 
   private DoubleComparator doubleComparator = new DoubleComparator(Configuration.EPSILON);
   private StringComparator stringComparator = new StringComparator();
diff --git a/converter/src/main/java/lcsb/mapviewer/converter/annotation/XmlAnnotationParser.java b/converter/src/main/java/lcsb/mapviewer/converter/annotation/XmlAnnotationParser.java
index cf20ef581e83e6ec3b4fa8a76e79a4d279edc5a2..c0fa876bc6e7c7427874cd4fe8456942d8f09b17 100644
--- a/converter/src/main/java/lcsb/mapviewer/converter/annotation/XmlAnnotationParser.java
+++ b/converter/src/main/java/lcsb/mapviewer/converter/annotation/XmlAnnotationParser.java
@@ -10,7 +10,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.DOMException;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
@@ -36,7 +36,7 @@ public class XmlAnnotationParser {
   /**
    * Default logger.
    */
-  private static Logger logger = Logger.getLogger(XmlAnnotationParser.class.getName());
+  private static Logger logger = LogManager.getLogger(XmlAnnotationParser.class.getName());
 
   private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
diff --git a/converter/src/main/java/lcsb/mapviewer/converter/zip/ZipEntryFileFactory.java b/converter/src/main/java/lcsb/mapviewer/converter/zip/ZipEntryFileFactory.java
index e647bedc78143a91ec33fa037ad9a6d347a939f5..41d64302f6f2131dbf5e6d9b11f2fa7e18a9f7c6 100644
--- a/converter/src/main/java/lcsb/mapviewer/converter/zip/ZipEntryFileFactory.java
+++ b/converter/src/main/java/lcsb/mapviewer/converter/zip/ZipEntryFileFactory.java
@@ -7,7 +7,7 @@ import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 
 import org.apache.commons.io.FilenameUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.TextFileUtils;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
@@ -23,7 +23,7 @@ public class ZipEntryFileFactory {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private final Logger logger = Logger.getLogger(ZipEntryFileFactory.class);
+  private final Logger logger = LogManager.getLogger(ZipEntryFileFactory.class);
 
   /**
    * Directory in a zip file where information about submodels is stored. These
diff --git a/converter/src/test/java/lcsb/mapviewer/converter/ComplexZipConverterTest.java b/converter/src/test/java/lcsb/mapviewer/converter/ComplexZipConverterTest.java
index 81ef20356f6596ae179d361bf2f7c7cc43d26a1d..a4b1126f4306344cad147d2ead8b5ba7fb3f3120 100644
--- a/converter/src/test/java/lcsb/mapviewer/converter/ComplexZipConverterTest.java
+++ b/converter/src/test/java/lcsb/mapviewer/converter/ComplexZipConverterTest.java
@@ -11,7 +11,7 @@ import java.io.ByteArrayInputStream;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -30,7 +30,7 @@ import lcsb.mapviewer.model.map.species.Element;
 public class ComplexZipConverterTest {
 
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(ComplexZipConverterTest.class);
+  private static Logger logger = LogManager.getLogger(ComplexZipConverterTest.class);
 
   @Before
   public void setUp() throws Exception {
diff --git a/converter/src/test/java/lcsb/mapviewer/converter/ConverterTestFunctions.java b/converter/src/test/java/lcsb/mapviewer/converter/ConverterTestFunctions.java
index 514977b80d66a2e151c35d4d1636ef405e94e0e9..038ee2cbed0cd0c7ffede7770cbbefb8e14ab861 100644
--- a/converter/src/test/java/lcsb/mapviewer/converter/ConverterTestFunctions.java
+++ b/converter/src/test/java/lcsb/mapviewer/converter/ConverterTestFunctions.java
@@ -26,8 +26,9 @@ import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 
-import org.apache.log4j.Logger;
-import org.apache.log4j.spi.LoggingEvent;
+import org.apache.logging.log4j.*;
+import org.apache.logging.log4j.core.LogEvent;
+
 import org.junit.After;
 import org.junit.Before;
 import org.w3c.dom.Document;
@@ -37,29 +38,29 @@ import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 
 import lcsb.mapviewer.common.Configuration;
-import lcsb.mapviewer.common.EventStorageLoggerAppender;
+
+import lcsb.mapviewer.common.MinervaLoggerAppender;
 import lcsb.mapviewer.common.exception.InvalidXmlSchemaException;
 
 public abstract class ConverterTestFunctions {
-  private Logger logger = Logger.getLogger(ConverterTestFunctions.class);
+  private Logger logger = LogManager.getLogger(ConverterTestFunctions.class);
 
   protected static double EPSILON = Configuration.EPSILON;
 
-  private EventStorageLoggerAppender appender;
+  private MinervaLoggerAppender appender;
 
   @Before
   public final void _setUp() throws Exception {
-    Logger.getRootLogger().removeAppender(appender);
-    appender = new EventStorageLoggerAppender();
-    Logger.getRootLogger().addAppender(appender);
+    MinervaLoggerAppender.unregisterLogEventStorage(appender);
+    appender = MinervaLoggerAppender.createAppender();
   }
 
   @After
   public final void _tearDown() throws Exception {
-    Logger.getRootLogger().removeAppender(appender);
+    MinervaLoggerAppender.unregisterLogEventStorage(appender);
   }
 
-  protected List<LoggingEvent> getWarnings() {
+  protected List<LogEvent> getWarnings() {
     return appender.getWarnings();
   }
 
diff --git a/converter/src/test/java/lcsb/mapviewer/converter/OverviewParserTest.java b/converter/src/test/java/lcsb/mapviewer/converter/OverviewParserTest.java
index e35dda709336b8fd97aa839d33a0686983761dcc..d2617032b0b3e35bd8af7d016b45bd00e0423055 100644
--- a/converter/src/test/java/lcsb/mapviewer/converter/OverviewParserTest.java
+++ b/converter/src/test/java/lcsb/mapviewer/converter/OverviewParserTest.java
@@ -17,7 +17,7 @@ import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -34,7 +34,7 @@ import lcsb.mapviewer.model.map.model.ModelFullIndexed;
 public class OverviewParserTest {
   private static final String TEST_FILES_VALID_OVERVIEW_ZIP = "testFiles/valid_overview.zip";
   private static final String TEST_FILES_VALID_OVERVIEW_CASE_SENSITIVE_ZIP = "testFiles/valid_overview_case_sensitive.zip";
-  Logger logger = Logger.getLogger(OverviewParserTest.class);
+  Logger logger = LogManager.getLogger(OverviewParserTest.class);
   OverviewParser parser = new OverviewParser();
 
   @Before
diff --git a/converter/src/test/java/lcsb/mapviewer/converter/ProjectFactoryTest.java b/converter/src/test/java/lcsb/mapviewer/converter/ProjectFactoryTest.java
index ad6b5dc3975aaf8450acb93b7ccd67448f401424..1d982d7fd24058b2939839855596fb5462c8d6dd 100644
--- a/converter/src/test/java/lcsb/mapviewer/converter/ProjectFactoryTest.java
+++ b/converter/src/test/java/lcsb/mapviewer/converter/ProjectFactoryTest.java
@@ -11,7 +11,7 @@ import java.util.List;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -29,7 +29,7 @@ import lcsb.mapviewer.model.map.model.ModelFullIndexed;
 import lcsb.mapviewer.model.map.species.GenericProtein;
 
 public class ProjectFactoryTest extends ConverterTestFunctions {
-  Logger logger = Logger.getLogger(ProjectFactoryTest.class);
+  Logger logger = LogManager.getLogger(ProjectFactoryTest.class);
 
   int elementCounter = 0;
 
diff --git a/converter/src/test/java/lcsb/mapviewer/converter/ZIndexPopulatorTest.java b/converter/src/test/java/lcsb/mapviewer/converter/ZIndexPopulatorTest.java
index 6d2f340d0b08e62049dfbf4d5a2afdde9cfb2a6a..5b57488a49413245cb12027b3557be1c45e60c4f 100644
--- a/converter/src/test/java/lcsb/mapviewer/converter/ZIndexPopulatorTest.java
+++ b/converter/src/test/java/lcsb/mapviewer/converter/ZIndexPopulatorTest.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.converter;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 
 import lcsb.mapviewer.model.map.compartment.Compartment;
@@ -19,7 +19,7 @@ import lcsb.mapviewer.model.map.species.Species;
 
 public class ZIndexPopulatorTest {
 
-  Logger logger = Logger.getLogger(ZIndexPopulatorTest.class);
+  Logger logger = LogManager.getLogger(ZIndexPopulatorTest.class);
 
   int identifierCounter = 0;
 
diff --git a/converter/src/test/java/lcsb/mapviewer/converter/annotation/XmlAnnotationParserTest.java b/converter/src/test/java/lcsb/mapviewer/converter/annotation/XmlAnnotationParserTest.java
index 8a2cbabe60aec00d571ecf9457ba917c197a1008..9e862bbb58db6bb636593aec331e8a3f2043d7a9 100644
--- a/converter/src/test/java/lcsb/mapviewer/converter/annotation/XmlAnnotationParserTest.java
+++ b/converter/src/test/java/lcsb/mapviewer/converter/annotation/XmlAnnotationParserTest.java
@@ -7,13 +7,13 @@ import static org.junit.Assert.fail;
 
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.w3c.dom.Node;
 
-import lcsb.mapviewer.common.EventStorageLoggerAppender;
+
 import lcsb.mapviewer.common.exception.InvalidXmlSchemaException;
 import lcsb.mapviewer.converter.ConverterTestFunctions;
 import lcsb.mapviewer.model.map.MiriamData;
@@ -118,8 +118,6 @@ public class XmlAnnotationParserTest extends ConverterTestFunctions {
 
   @Test
   public void testParseInvalidRdf4() throws Exception {
-    EventStorageLoggerAppender appender = new EventStorageLoggerAppender();
-    Logger.getRootLogger().addAppender(appender);
     try {
       XmlAnnotationParser xap = new XmlAnnotationParser();
 
@@ -127,19 +125,15 @@ public class XmlAnnotationParserTest extends ConverterTestFunctions {
 
       xap.parse(xml);
 
-      assertEquals(1, appender.getWarnings().size());
+      assertEquals(1, getWarnings().size());
     } catch (Exception e) {
       e.printStackTrace();
       throw e;
-    } finally {
-      Logger.getRootLogger().removeAppender(appender);
     }
   }
 
   @Test
   public void testParseInvalidRdf5() throws Exception {
-    EventStorageLoggerAppender appender = new EventStorageLoggerAppender();
-    Logger.getRootLogger().addAppender(appender);
     try {
       XmlAnnotationParser xap = new XmlAnnotationParser();
 
@@ -147,12 +141,10 @@ public class XmlAnnotationParserTest extends ConverterTestFunctions {
 
       xap.parse(xml);
 
-      assertEquals(1, appender.getWarnings().size());
+      assertEquals(1, getWarnings().size());
     } catch (Exception e) {
       e.printStackTrace();
       throw e;
-    } finally {
-      Logger.getRootLogger().removeAppender(appender);
     }
   }
 
diff --git a/converter/src/test/resources/log4j.properties b/converter/src/test/resources/log4j.properties
deleted file mode 100644
index 4d46bcbdbbff98b6f0ab577993b51da5a200c6d3..0000000000000000000000000000000000000000
--- a/converter/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-#Set root logger 's level and its appender to an appender called CONSOLE which is defined below.
-log4j.rootLogger=info, CONSOLE
-
-#Set the behavior of the CONSOLE appender 
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-#log4j.appender.CONSOLE.layout.ConversionPattern=%m%n
-
-
-#Set the behavior of the FILE appender 
-log4j.appender.R=org.apache.log4j.FileAppender
-log4j.appender.R.File=${catalina.home}/logs/MapViewer.log
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-
-
-log4j.logger.org.springframework=warn
-log4j.logger.org.hibernate=warn
-log4j.logger.lcsb=debug
-log4j.logger.lcsb.mapviewer.persist.DbUtils=info
-log4j.logger.lcsb.mapviewer.annotation.cache.PermanentDatabaseLevelCache=info
\ No newline at end of file
diff --git a/converter/src/test/resources/log4j2.properties b/converter/src/test/resources/log4j2.properties
new file mode 100644
index 0000000000000000000000000000000000000000..b5eaa32682d177bf266eb6ed4831b4e8f4b9135d
--- /dev/null
+++ b/converter/src/test/resources/log4j2.properties
@@ -0,0 +1,25 @@
+rootLogger.level = INFO
+appenders = console
+
+appender.console.type = Console
+appender.console.name = STDOUT
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %d %5p [%t] (%F:%L) - %m%n
+
+rootLogger.appenderRefs = console
+
+rootLogger.appenderRef.console.ref = STDOUT
+
+logger.minerva.name = lcsb
+logger.minerva.level = debug
+logger.minerva-persist.name = lcsb.mapviewer.persist.DbUtils
+logger.minerva-persist.level = info
+logger.minerva-cache.name = lcsb.mapviewer.annotation.cache
+logger.minerva-cache.level = info
+
+
+logger.springframework.name = org.springframework
+logger.springframework.level = warn
+
+logger.hibernate.name = org.hibernate
+logger.hibernate.level = warn
diff --git a/editor/pom.xml b/editor/pom.xml
index f6314f5ac800bb5385c7fc21e2ef3780762013c6..f9a59c9b474e7dd42ef8c12e8dfbf157d9656fb9 100644
--- a/editor/pom.xml
+++ b/editor/pom.xml
@@ -28,10 +28,16 @@
       <version>1.0</version>
     </dependency>
 
+		<!-- Log4J2-->
 		<dependency>
-			<groupId>log4j</groupId>
-			<artifactId>log4j</artifactId>
-			<version>${log4j.version}</version>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-api</artifactId>
+			<version>${log4j2.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-core</artifactId>
+			<version>${log4j2.version}</version>
 		</dependency>
 	</dependencies>
 
diff --git a/editor/src/main/java/lcsb/mapviewer/editor/MinervaEditor.java b/editor/src/main/java/lcsb/mapviewer/editor/MinervaEditor.java
index 8c1b47aefd49000f7d0904f124f34b76060e1853..b8450f00c7bd15822c7f2855b08ed989adce44e1 100644
--- a/editor/src/main/java/lcsb/mapviewer/editor/MinervaEditor.java
+++ b/editor/src/main/java/lcsb/mapviewer/editor/MinervaEditor.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.editor;
 
 import lcsb.mapviewer.editor.gui.MinervaWindow;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Entry point to MINERVA editor.
@@ -15,7 +15,7 @@ public final class MinervaEditor {
 	/**
 	 * Default class logger.
 	 */
-	private Logger				logger = Logger.getLogger(MinervaEditor.class);
+	private Logger				logger = LogManager.getLogger(MinervaEditor.class);
 
 	/**
 	 * Window where the software will be running.
@@ -34,7 +34,7 @@ public final class MinervaEditor {
 			editor.run();
 		} catch (Exception e) {
 			e.printStackTrace();
-			Logger.getLogger(MinervaEditor.class).error(e, e);
+			LogManager.getLogger(MinervaEditor.class).error(e, e);
 		}
 	}
 
diff --git a/editor/src/main/java/lcsb/mapviewer/editor/gui/OpenProjectListener.java b/editor/src/main/java/lcsb/mapviewer/editor/gui/OpenProjectListener.java
index f8fc87daf3ee756b3a51eea372f0a8386055b1d8..49c6950249fd618f6125afe21c5c07d3a079c55a 100644
--- a/editor/src/main/java/lcsb/mapviewer/editor/gui/OpenProjectListener.java
+++ b/editor/src/main/java/lcsb/mapviewer/editor/gui/OpenProjectListener.java
@@ -20,7 +20,7 @@ import lcsb.mapviewer.editor.OpenedProject;
 import lcsb.mapviewer.editor.Workspace;
 import lcsb.mapviewer.model.map.model.Model;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Listener used to open files with {@link OpenedProject}.
@@ -33,7 +33,7 @@ public class OpenProjectListener implements ActionListener {
 	/**
 	 * Default class logger.
 	 */
-	private final Logger			 logger		 = Logger.getLogger(OpenProjectListener.class);
+	private final Logger			 logger		 = LogManager.getLogger(OpenProjectListener.class);
 
 	/**
 	 * {@link Workspace} where opened project should be added.
diff --git a/editor/src/main/java/lcsb/mapviewer/editor/gui/ProjectTab.java b/editor/src/main/java/lcsb/mapviewer/editor/gui/ProjectTab.java
index 211526dcfc7219a93b2a07bf5f7b2a10edbe8717..3d306ec4c4976a0052f543c1473e60ab263adc97 100644
--- a/editor/src/main/java/lcsb/mapviewer/editor/gui/ProjectTab.java
+++ b/editor/src/main/java/lcsb/mapviewer/editor/gui/ProjectTab.java
@@ -10,7 +10,7 @@ import javax.swing.JComponent;
 import lcsb.mapviewer.editor.OpenedProject;
 import lcsb.mapviewer.editor.gui.canvas.MinervaCanvas;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Component representing ab for single project.
@@ -29,7 +29,7 @@ public class ProjectTab extends JComponent {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final Logger			logger					 = Logger.getLogger(ProjectTab.class);
+	private final Logger			logger					 = LogManager.getLogger(ProjectTab.class);
 
 	/**
 	 * Project that is visualized in this tab.
diff --git a/editor/src/main/java/lcsb/mapviewer/editor/gui/WindowContent.java b/editor/src/main/java/lcsb/mapviewer/editor/gui/WindowContent.java
index 6706e8e7b0a40ad5026ce34100e844d7be0e2128..76a14fde3ff5f16026f4502766df24df112b21a7 100644
--- a/editor/src/main/java/lcsb/mapviewer/editor/gui/WindowContent.java
+++ b/editor/src/main/java/lcsb/mapviewer/editor/gui/WindowContent.java
@@ -19,7 +19,7 @@ import lcsb.mapviewer.model.map.reaction.Reaction;
 import lcsb.mapviewer.model.map.species.Element;
 
 import org.apache.commons.io.FilenameUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Panel representing content of the gui window.
@@ -38,7 +38,7 @@ public class WindowContent extends JPanel {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final Logger				logger					 = Logger.getLogger(WindowContent.class);
+	private final Logger				logger					 = LogManager.getLogger(WindowContent.class);
 
 	/**
 	 * Tabs with projects content.
diff --git a/editor/src/main/java/lcsb/mapviewer/editor/gui/canvas/CanvasSelectMouseListener.java b/editor/src/main/java/lcsb/mapviewer/editor/gui/canvas/CanvasSelectMouseListener.java
index b17ca82654cbe25e58b356684e3b65feea839f1e..e342d68bc4e3b98aa3d1dd8cd1f21c65c7ea00ad 100644
--- a/editor/src/main/java/lcsb/mapviewer/editor/gui/canvas/CanvasSelectMouseListener.java
+++ b/editor/src/main/java/lcsb/mapviewer/editor/gui/canvas/CanvasSelectMouseListener.java
@@ -11,7 +11,7 @@ import lcsb.mapviewer.model.map.reaction.Reaction;
 import lcsb.mapviewer.model.map.species.Element;
 import lcsb.mapviewer.model.map.species.Species;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * {@link MouseListener} used when canvas is in select mode (allows to select
@@ -33,7 +33,7 @@ public class CanvasSelectMouseListener implements MouseListener {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private Logger							logger													 = Logger.getLogger(CanvasSelectMouseListener.class);
+	private Logger							logger													 = LogManager.getLogger(CanvasSelectMouseListener.class);
 
 	/**
 	 * Canvas where drawing is performed.
diff --git a/editor/src/main/java/lcsb/mapviewer/editor/gui/canvas/MinervaCanvas.java b/editor/src/main/java/lcsb/mapviewer/editor/gui/canvas/MinervaCanvas.java
index 7190343e89fedb9dde647437d9ba316d9fd2f0c0..53231f9b36ca50bbe5bb23b23a7cd4bed2525094 100644
--- a/editor/src/main/java/lcsb/mapviewer/editor/gui/canvas/MinervaCanvas.java
+++ b/editor/src/main/java/lcsb/mapviewer/editor/gui/canvas/MinervaCanvas.java
@@ -32,7 +32,7 @@ import lcsb.mapviewer.editor.BufferedImageData;
 import lcsb.mapviewer.editor.gui.GuiStyle;
 import lcsb.mapviewer.model.map.model.Model;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Canvas used for vizualization of the map.
@@ -82,7 +82,7 @@ public class MinervaCanvas extends JComponent {
 	/**
 	 * Default class logger.
 	 */
-	private final Logger				logger						= Logger.getLogger(MinervaCanvas.class);
+	private final Logger				logger						= LogManager.getLogger(MinervaCanvas.class);
 
 	/**
 	 * Bar representing x coordinate from which we visualize map.
diff --git a/editor/src/main/java/lcsb/mapviewer/editor/gui/detailstab/ElementDetailsPanel.java b/editor/src/main/java/lcsb/mapviewer/editor/gui/detailstab/ElementDetailsPanel.java
index 09d1633b56693497b93a63ff8c85b6e7268d555b..1b4fdcf6df0b673cdd498ec76d5f2bf4a8fd03a8 100644
--- a/editor/src/main/java/lcsb/mapviewer/editor/gui/detailstab/ElementDetailsPanel.java
+++ b/editor/src/main/java/lcsb/mapviewer/editor/gui/detailstab/ElementDetailsPanel.java
@@ -27,7 +27,7 @@ import javax.swing.JTextArea;
 import javax.swing.JTextField;
 import javax.swing.text.JTextComponent;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.CommandExecutionException;
 import lcsb.mapviewer.commands.ModelCommand;
@@ -71,7 +71,7 @@ public class ElementDetailsPanel extends JPanel {
 	/**
 	 * Default class logger.
 	 */
-	private final Logger																 logger									= Logger.getLogger(ElementDetailsPanel.class);
+	private final Logger																 logger									= LogManager.getLogger(ElementDetailsPanel.class);
 
 	/**
 	 * Label for {@link Element#name} parameter.
diff --git a/editor/src/main/java/lcsb/mapviewer/editor/gui/objectedit/ObjectEditDialog.java b/editor/src/main/java/lcsb/mapviewer/editor/gui/objectedit/ObjectEditDialog.java
index a284e01aea1b8f86c9c9546b381d92a1ef6917bd..18051c43c0b7f2bb4d8cb3bf947767586a153fde 100644
--- a/editor/src/main/java/lcsb/mapviewer/editor/gui/objectedit/ObjectEditDialog.java
+++ b/editor/src/main/java/lcsb/mapviewer/editor/gui/objectedit/ObjectEditDialog.java
@@ -19,7 +19,7 @@ import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.editor.gui.ElementModifiedEvent;
 import lcsb.mapviewer.editor.gui.ElementModifiedEventListener;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Generic class that is a dialog used for editing objects of a given class.
@@ -35,7 +35,7 @@ public abstract class ObjectEditDialog<T> {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final Logger													logger		= Logger.getLogger(ObjectEditDialog.class);
+	private final Logger													logger		= LogManager.getLogger(ObjectEditDialog.class);
 
 	/**
 	 * Object that is currently edited.
diff --git a/editor/src/main/resources/log4j.properties b/editor/src/main/resources/log4j.properties
deleted file mode 100644
index de3161dd07081470b74af9e8018aba8ae1667e6e..0000000000000000000000000000000000000000
--- a/editor/src/main/resources/log4j.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-#Set root logger 's level and its appender to an appender called CONSOLE which is defined below.
-log4j.rootLogger=info, CONSOLE, R
-
-#Set the behavior of the CONSOLE appender 
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-#log4j.appender.CONSOLE.layout.ConversionPattern=%m%n
-
-
-#Set the behavior of the FILE appender 
-log4j.appender.R=org.apache.log4j.FileAppender
-log4j.appender.R.File=minerva.log
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-
-
-log4j.logger.org.springframework=warn
-log4j.logger.org.hibernate=warn
-log4j.logger.lcsb=debug
-log4j.logger.lcsb.mapviewer.persist.DbUtils=info
-log4j.logger.lcsb.mapviewer.annotation.cache.PermanentDatabaseLevelCache=info
\ No newline at end of file
diff --git a/editor/src/main/resources/log4j2.properties b/editor/src/main/resources/log4j2.properties
new file mode 100644
index 0000000000000000000000000000000000000000..b5eaa32682d177bf266eb6ed4831b4e8f4b9135d
--- /dev/null
+++ b/editor/src/main/resources/log4j2.properties
@@ -0,0 +1,25 @@
+rootLogger.level = INFO
+appenders = console
+
+appender.console.type = Console
+appender.console.name = STDOUT
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %d %5p [%t] (%F:%L) - %m%n
+
+rootLogger.appenderRefs = console
+
+rootLogger.appenderRef.console.ref = STDOUT
+
+logger.minerva.name = lcsb
+logger.minerva.level = debug
+logger.minerva-persist.name = lcsb.mapviewer.persist.DbUtils
+logger.minerva-persist.level = info
+logger.minerva-cache.name = lcsb.mapviewer.annotation.cache
+logger.minerva-cache.level = info
+
+
+logger.springframework.name = org.springframework
+logger.springframework.level = warn
+
+logger.hibernate.name = org.hibernate
+logger.hibernate.level = warn
diff --git a/editor/src/test/resources/log4j.properties b/editor/src/test/resources/log4j.properties
deleted file mode 100644
index de3161dd07081470b74af9e8018aba8ae1667e6e..0000000000000000000000000000000000000000
--- a/editor/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-#Set root logger 's level and its appender to an appender called CONSOLE which is defined below.
-log4j.rootLogger=info, CONSOLE, R
-
-#Set the behavior of the CONSOLE appender 
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-#log4j.appender.CONSOLE.layout.ConversionPattern=%m%n
-
-
-#Set the behavior of the FILE appender 
-log4j.appender.R=org.apache.log4j.FileAppender
-log4j.appender.R.File=minerva.log
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-
-
-log4j.logger.org.springframework=warn
-log4j.logger.org.hibernate=warn
-log4j.logger.lcsb=debug
-log4j.logger.lcsb.mapviewer.persist.DbUtils=info
-log4j.logger.lcsb.mapviewer.annotation.cache.PermanentDatabaseLevelCache=info
\ No newline at end of file
diff --git a/editor/src/test/resources/log4j2.properties b/editor/src/test/resources/log4j2.properties
new file mode 100644
index 0000000000000000000000000000000000000000..b5eaa32682d177bf266eb6ed4831b4e8f4b9135d
--- /dev/null
+++ b/editor/src/test/resources/log4j2.properties
@@ -0,0 +1,25 @@
+rootLogger.level = INFO
+appenders = console
+
+appender.console.type = Console
+appender.console.name = STDOUT
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %d %5p [%t] (%F:%L) - %m%n
+
+rootLogger.appenderRefs = console
+
+rootLogger.appenderRef.console.ref = STDOUT
+
+logger.minerva.name = lcsb
+logger.minerva.level = debug
+logger.minerva-persist.name = lcsb.mapviewer.persist.DbUtils
+logger.minerva-persist.level = info
+logger.minerva-cache.name = lcsb.mapviewer.annotation.cache
+logger.minerva-cache.level = info
+
+
+logger.springframework.name = org.springframework
+logger.springframework.level = warn
+
+logger.hibernate.name = org.hibernate
+logger.hibernate.level = warn
diff --git a/model-command/pom.xml b/model-command/pom.xml
index a6d6b9166e5e5d8ba19f8ceef4098a0756356950..3092bcd4253f55c1b6605bc82cf84fb94edb14e0 100644
--- a/model-command/pom.xml
+++ b/model-command/pom.xml
@@ -27,10 +27,16 @@
       <version>1.0</version>
     </dependency>
 
+		<!-- Log4J2-->
 		<dependency>
-			<groupId>log4j</groupId>
-			<artifactId>log4j</artifactId>
-			<version>${log4j.version}</version>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-api</artifactId>
+			<version>${log4j2.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-core</artifactId>
+			<version>${log4j2.version}</version>
 		</dependency>
 
 		<!-- mockito used for testing -->
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/ColorModelCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/ColorModelCommand.java
index 0604eb7b481275c4ed3a5633bcbbfa0ec6712451..37cc33ce058c2543bfdf70999127599680474610 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/ColorModelCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/ColorModelCommand.java
@@ -7,7 +7,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.comparator.StringComparator;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
@@ -42,7 +42,7 @@ public class ColorModelCommand extends ModelCommand {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(ColorModelCommand.class);
+  private Logger logger = LogManager.getLogger(ColorModelCommand.class);
 
   /**
    * Set of color schemas used in this command to color model.
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/CopyCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/CopyCommand.java
index 5534be103fc088db2a762530ed2bd2738deead60..3d5f910225c5d746ac6d4405dc58658c66869153 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/CopyCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/CopyCommand.java
@@ -6,7 +6,7 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.common.exception.InvalidClassException;
@@ -44,7 +44,7 @@ public class CopyCommand extends NewModelCommand {
    * Defaul class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(CopyCommand.class);
+  private static Logger logger = LogManager.getLogger(CopyCommand.class);
 
   /**
    * Default constructor.
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/CreateHierarchyCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/CreateHierarchyCommand.java
index adb5061425f39f5a07d72c0728ee30ace2141be7..6f7c9f9e3c360c468885b6306ad00370e9170c2f 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/CreateHierarchyCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/CreateHierarchyCommand.java
@@ -7,7 +7,7 @@ import java.util.List;
 import java.util.Set;
 
 import org.apache.commons.lang3.math.NumberUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Configuration;
 import lcsb.mapviewer.common.exception.InvalidStateException;
@@ -36,7 +36,7 @@ public class CreateHierarchyCommand extends ModelCommand {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(CreateHierarchyCommand.class);
+  private static Logger logger = LogManager.getLogger(CreateHierarchyCommand.class);
   /**
    * Natural logarithm of four.
    */
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/MoveElementsCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/MoveElementsCommand.java
index 42eead9a222d343d86f3fb6377b59b461209f149..251149fcf3ccf5ee5ae6c9cbac90b1a1cfb2e64c 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/MoveElementsCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/MoveElementsCommand.java
@@ -7,7 +7,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.common.exception.InvalidStateException;
@@ -36,7 +36,7 @@ public class MoveElementsCommand extends ModelCommand {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private final Logger logger = Logger.getLogger(MoveElementsCommand.class);
+  private final Logger logger = LogManager.getLogger(MoveElementsCommand.class);
 
   /**
    * Delta x.
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/SemanticZoomLevelMatcher.java b/model-command/src/main/java/lcsb/mapviewer/commands/SemanticZoomLevelMatcher.java
index 8e55dbd35a707a07aa425b9c166fb372d61f951e..d49f59d7a0a08874a2efb2892931c875687f99ec 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/SemanticZoomLevelMatcher.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/SemanticZoomLevelMatcher.java
@@ -1,13 +1,13 @@
 package lcsb.mapviewer.commands;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 public class SemanticZoomLevelMatcher {
 	/**
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private Logger logger = Logger.getLogger(SemanticZoomLevelMatcher.class);
+	private Logger logger = LogManager.getLogger(SemanticZoomLevelMatcher.class);
 
 	/**
 	 * Checks if level belongs to the range defined in
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/SetFixedHierarchyLevelCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/SetFixedHierarchyLevelCommand.java
index b6d44ee2198f2e7e33f4d844a6b983cc3d40650e..99325ce1f18a70c8cf2860efc745e582b367e9dd 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/SetFixedHierarchyLevelCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/SetFixedHierarchyLevelCommand.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.commands;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidStateException;
 import lcsb.mapviewer.common.exception.NotImplementedException;
@@ -24,7 +24,7 @@ public class SetFixedHierarchyLevelCommand extends ModelCommand {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(SetFixedHierarchyLevelCommand.class);
+  private static Logger logger = LogManager.getLogger(SetFixedHierarchyLevelCommand.class);
   private Integer level;
 
   public SetFixedHierarchyLevelCommand(Model model, Integer level) {
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/SubModelCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/SubModelCommand.java
index b1e301093a37e90c7e003adfb607acfadd20ca73..de058e7b7e2d815dbe4845da018ab0fe276c5fad 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/SubModelCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/SubModelCommand.java
@@ -6,7 +6,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.map.layout.graphics.Layer;
 import lcsb.mapviewer.model.map.layout.graphics.LayerText;
@@ -26,7 +26,7 @@ import lcsb.mapviewer.model.map.species.Species;
  */
 public class SubModelCommand extends NewModelCommand {
 
-  Logger logger = Logger.getLogger(SubModelCommand.class);
+  Logger logger = LogManager.getLogger(SubModelCommand.class);
 
   /**
    * Polygon that limits the area for the new model.
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/layout/ApplyLayoutModelCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/layout/ApplyLayoutModelCommand.java
index fe321ba0709cd2d8cfaa676904aef2bdcedea353..b760013ef39bc5f2209ee9d69c4139d802e156d2 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/layout/ApplyLayoutModelCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/layout/ApplyLayoutModelCommand.java
@@ -5,7 +5,7 @@ import java.awt.geom.Point2D;
 import java.util.Collection;
 import java.util.HashSet;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.ModelCommand;
 import lcsb.mapviewer.common.geometry.DoubleDimension;
@@ -18,7 +18,7 @@ public abstract class ApplyLayoutModelCommand extends ModelCommand {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(ApplyLayoutModelCommand.class);
+  private Logger logger = LogManager.getLogger(ApplyLayoutModelCommand.class);
   private Collection<BioEntity> bioEntities;
   private Double minX;
   private Double minY;
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/layout/ApplySimpleLayoutModelCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/layout/ApplySimpleLayoutModelCommand.java
index bc5a62e40ec7db894c18582101675ea10d6f1137..22cfbb91e5bf11c2b0f8b957608400280a51c046 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/layout/ApplySimpleLayoutModelCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/layout/ApplySimpleLayoutModelCommand.java
@@ -12,7 +12,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.CommandExecutionException;
 import lcsb.mapviewer.common.Configuration;
@@ -50,7 +50,7 @@ public class ApplySimpleLayoutModelCommand extends ApplyLayoutModelCommand {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(ApplySimpleLayoutModelCommand.class);
+  private Logger logger = LogManager.getLogger(ApplySimpleLayoutModelCommand.class);
 
   public static final double COMPARTMENT_BORDER = 10;
   private static final double BORDER_FROM_EXISTING_ELEMENTS = 10;
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/properties/AddElementFormerSymbolsCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/properties/AddElementFormerSymbolsCommand.java
index 27c1f946491d70f98c4871fd7d1c8e0d59ea69be..7b94301d00fdcb1e23918288899dd635a075738d 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/properties/AddElementFormerSymbolsCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/properties/AddElementFormerSymbolsCommand.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.commands.properties;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.CommandExecutionException;
 import lcsb.mapviewer.model.map.model.Model;
@@ -21,7 +21,7 @@ public class AddElementFormerSymbolsCommand extends AddElementPropertyListEntryC
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final Logger logger = Logger.getLogger(AddElementFormerSymbolsCommand.class);
+	private final Logger logger = LogManager.getLogger(AddElementFormerSymbolsCommand.class);
 
 	/**
 	 * Default constructor.
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/properties/AddElementMiriamDataCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/properties/AddElementMiriamDataCommand.java
index d39ea3a322db1979b8bf4604ba10deccbe1a28ca..ba6c0591953fe643b31bb702e51b7f19bb7211f5 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/properties/AddElementMiriamDataCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/properties/AddElementMiriamDataCommand.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.commands.properties;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.CommandExecutionException;
 import lcsb.mapviewer.model.map.MiriamData;
@@ -22,7 +22,7 @@ public class AddElementMiriamDataCommand extends AddElementPropertyListEntryComm
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final Logger logger = Logger.getLogger(AddElementMiriamDataCommand.class);
+	private final Logger logger = LogManager.getLogger(AddElementMiriamDataCommand.class);
 
 	/**
 	 * Default constructor.
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/properties/AddElementSynonymsCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/properties/AddElementSynonymsCommand.java
index 8b9d92133526c16d8a8ee7cbb41916ba9eb3248b..ee8bd9971b0003568412047d254784bdb05d2d49 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/properties/AddElementSynonymsCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/properties/AddElementSynonymsCommand.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.commands.properties;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.CommandExecutionException;
 import lcsb.mapviewer.model.map.model.Model;
@@ -21,7 +21,7 @@ public class AddElementSynonymsCommand extends AddElementPropertyListEntryComman
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final Logger logger = Logger.getLogger(AddElementSynonymsCommand.class);
+	private final Logger logger = LogManager.getLogger(AddElementSynonymsCommand.class);
 
 	/**
 	 * Default constructor.
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementAbbreviationCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementAbbreviationCommand.java
index 61854ce6f87e49512579c7edc969b623113826b0..acad51f8d5b0c577f2d72bee50db33fb5293fff0 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementAbbreviationCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementAbbreviationCommand.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.commands.properties;
 import lcsb.mapviewer.model.map.model.Model;
 import lcsb.mapviewer.model.map.species.Element;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * {@link lcsb.mapviewer.commands.ModelCommand ModelCommand} that changes name
@@ -18,7 +18,7 @@ public class ChangeElementAbbreviationCommand extends ChangeElementPropertyComma
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final Logger logger = Logger.getLogger(ChangeElementAbbreviationCommand.class);
+	private final Logger logger = LogManager.getLogger(ChangeElementAbbreviationCommand.class);
 
 	/**
 	 * Default constructor.
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementColorCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementColorCommand.java
index c6a469444136fe3be0b7b8f149e099562b6d45ac..5f42faaa870725c2848765785467ba7826ed0924 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementColorCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementColorCommand.java
@@ -5,7 +5,7 @@ import java.awt.Color;
 import lcsb.mapviewer.model.map.model.Model;
 import lcsb.mapviewer.model.map.species.Element;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * {@link lcsb.mapviewer.commands.ModelCommand ModelCommand} that
@@ -20,7 +20,7 @@ public class ChangeElementColorCommand extends ChangeElementPropertyCommand<Colo
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final Logger logger = Logger.getLogger(ChangeElementColorCommand.class);
+	private final Logger logger = LogManager.getLogger(ChangeElementColorCommand.class);
 
 	/**
 	 * Default constructor.
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementFontSizeCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementFontSizeCommand.java
index a00d9de774ecf2bb78d31348c14403699efa31d3..f128cba3af24b69dda5591f2c2b841def7c234ec 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementFontSizeCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementFontSizeCommand.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.commands.properties;
 import lcsb.mapviewer.model.map.model.Model;
 import lcsb.mapviewer.model.map.species.Element;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * {@link lcsb.mapviewer.commands.ModelCommand ModelCommand} that changes
@@ -18,7 +18,7 @@ public class ChangeElementFontSizeCommand extends ChangeElementPropertyCommand<D
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final Logger logger = Logger.getLogger(ChangeElementFontSizeCommand.class);
+	private final Logger logger = LogManager.getLogger(ChangeElementFontSizeCommand.class);
 
 	/**
 	 * Default constructor.
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementFormerSymbolCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementFormerSymbolCommand.java
index 01fc85e437b67eb4acb294577fb68a15cf91828f..5e82bf21d138adfa6211c309716c66858ddd11b4 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementFormerSymbolCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementFormerSymbolCommand.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.commands.properties;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.CommandExecutionException;
 import lcsb.mapviewer.model.map.model.Model;
@@ -19,7 +19,7 @@ public class ChangeElementFormerSymbolCommand extends ChangeElementPropertyListE
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final Logger logger = Logger.getLogger(ChangeElementFormerSymbolCommand.class);
+	private final Logger logger = LogManager.getLogger(ChangeElementFormerSymbolCommand.class);
 
 	/**
 	 * Default constructor.
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementFormulaCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementFormulaCommand.java
index e0c3f23b8168cf9f7755b639a28e538c5469b30f..238ea5f95d875b513f565ac608466ea23ebf43c5 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementFormulaCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementFormulaCommand.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.commands.properties;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.map.model.Model;
 import lcsb.mapviewer.model.map.species.Element;
@@ -18,7 +18,7 @@ public class ChangeElementFormulaCommand extends ChangeElementPropertyCommand<St
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final Logger logger = Logger.getLogger(ChangeElementFormulaCommand.class);
+	private final Logger logger = LogManager.getLogger(ChangeElementFormulaCommand.class);
 
 	/**
 	 * Default constructor.
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementFullNameCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementFullNameCommand.java
index 63d4e415504aacff2733bcd775fd0c118efc97f7..cdf2c16147497ea14d7dab9622707d123d5cdd94 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementFullNameCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementFullNameCommand.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.commands.properties;
 import lcsb.mapviewer.model.map.model.Model;
 import lcsb.mapviewer.model.map.species.Element;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * {@link lcsb.mapviewer.commands.ModelCommand ModelCommand} that changes full
@@ -18,7 +18,7 @@ public class ChangeElementFullNameCommand extends ChangeElementPropertyCommand<S
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final Logger logger = Logger.getLogger(ChangeElementFullNameCommand.class);
+	private final Logger logger = LogManager.getLogger(ChangeElementFullNameCommand.class);
 
 	/**
 	 * Default constructor.
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementMiriamDataCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementMiriamDataCommand.java
index fc97cf1e541ea9bc23eef3a8a642216861d85ff3..60623304552ca1a211c15cf2b879f2da485305e7 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementMiriamDataCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementMiriamDataCommand.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.commands.properties;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.CommandExecutionException;
 import lcsb.mapviewer.model.map.MiriamData;
@@ -20,7 +20,7 @@ public class ChangeElementMiriamDataCommand extends ChangeElementPropertyListEnt
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final Logger logger = Logger.getLogger(ChangeElementMiriamDataCommand.class);
+	private final Logger logger = LogManager.getLogger(ChangeElementMiriamDataCommand.class);
 
 	/**
 	 * Default constructor.
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementNameCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementNameCommand.java
index 584a8a731775875420d6d3f163dea06a13e1edc7..7a6f4d5d7fb0e2b2938e14e39b2894cdc17caea2 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementNameCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementNameCommand.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.commands.properties;
 import lcsb.mapviewer.model.map.model.Model;
 import lcsb.mapviewer.model.map.species.Element;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * {@link lcsb.mapviewer.commands.ModelCommand ModelCommand} that changes name
@@ -18,7 +18,7 @@ public class ChangeElementNameCommand extends ChangeElementPropertyCommand<Strin
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final Logger logger = Logger.getLogger(ChangeElementNameCommand.class);
+	private final Logger logger = LogManager.getLogger(ChangeElementNameCommand.class);
 
 	/**
 	 * Default constructor.
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementNotesCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementNotesCommand.java
index 4a9cfb50c12dbabfafa90a1b5246d23d2ebc4d62..77a25a50bd2365dd088e3bfd1bf075d728b92393 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementNotesCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementNotesCommand.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.commands.properties;
 import lcsb.mapviewer.model.map.model.Model;
 import lcsb.mapviewer.model.map.species.Element;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * {@link lcsb.mapviewer.commands.ModelCommand ModelCommand} that changes notes
@@ -18,7 +18,7 @@ public class ChangeElementNotesCommand extends ChangeElementPropertyCommand<Stri
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final Logger logger = Logger.getLogger(ChangeElementNotesCommand.class);
+	private final Logger logger = LogManager.getLogger(ChangeElementNotesCommand.class);
 
 	/**
 	 * Default constructor.
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementSymbolCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementSymbolCommand.java
index 8d0ccf5680762861c6e76b1e9bc9d2c5ceea4d1c..646926e4d57d8150cfed8ed1add39c3cf5841207 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementSymbolCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementSymbolCommand.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.commands.properties;
 import lcsb.mapviewer.model.map.model.Model;
 import lcsb.mapviewer.model.map.species.Element;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * {@link lcsb.mapviewer.commands.ModelCommand ModelCommand} that changes symbol
@@ -18,7 +18,7 @@ public class ChangeElementSymbolCommand extends ChangeElementPropertyCommand<Str
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final Logger logger = Logger.getLogger(ChangeElementSymbolCommand.class);
+	private final Logger logger = LogManager.getLogger(ChangeElementSymbolCommand.class);
 
 	/**
 	 * Default constructor.
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementSynonymCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementSynonymCommand.java
index 48de685439d1b10af1dd0ada487107d62919677a..8c0d2705b06467ed6b503b0f6ea7915cc9a23fae 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementSynonymCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/properties/ChangeElementSynonymCommand.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.commands.properties;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.CommandExecutionException;
 import lcsb.mapviewer.model.map.model.Model;
@@ -19,7 +19,7 @@ public class ChangeElementSynonymCommand extends ChangeElementPropertyListEntryC
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final Logger logger = Logger.getLogger(ChangeElementSynonymCommand.class);
+	private final Logger logger = LogManager.getLogger(ChangeElementSynonymCommand.class);
 
 	/**
 	 * Default constructor.
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/properties/RemoveElementFormerSymbolsCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/properties/RemoveElementFormerSymbolsCommand.java
index e4d2d18926366d265b123cfcf90f1f71653c5263..13e233fd70f4fb84dce0087cc4f2aa5d16098cc3 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/properties/RemoveElementFormerSymbolsCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/properties/RemoveElementFormerSymbolsCommand.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.commands.properties;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.CommandExecutionException;
 import lcsb.mapviewer.model.map.model.Model;
@@ -21,7 +21,7 @@ public class RemoveElementFormerSymbolsCommand extends RemoveElementPropertyList
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final Logger logger = Logger.getLogger(RemoveElementFormerSymbolsCommand.class);
+	private final Logger logger = LogManager.getLogger(RemoveElementFormerSymbolsCommand.class);
 
 	/**
 	 * Default constructor.
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/properties/RemoveElementMiriamDataCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/properties/RemoveElementMiriamDataCommand.java
index f8d9dec4d6ec76152cd02a3eb0feee3c2fda8a23..4a7bc50cf0cb98e65be10853773a5b6455f674fe 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/properties/RemoveElementMiriamDataCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/properties/RemoveElementMiriamDataCommand.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.commands.properties;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.CommandExecutionException;
 import lcsb.mapviewer.model.map.MiriamData;
@@ -22,7 +22,7 @@ public class RemoveElementMiriamDataCommand extends RemoveElementPropertyListEnt
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final Logger logger = Logger.getLogger(RemoveElementMiriamDataCommand.class);
+	private final Logger logger = LogManager.getLogger(RemoveElementMiriamDataCommand.class);
 
 	/**
 	 * Default constructor.
diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/properties/RemoveElementSynonymsCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/properties/RemoveElementSynonymsCommand.java
index 2c39a420951beff130986c6d5f1953fe6db949f8..318510ec51c93de6d2056640d18cf96c7ed931b7 100644
--- a/model-command/src/main/java/lcsb/mapviewer/commands/properties/RemoveElementSynonymsCommand.java
+++ b/model-command/src/main/java/lcsb/mapviewer/commands/properties/RemoveElementSynonymsCommand.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.commands.properties;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.commands.CommandExecutionException;
 import lcsb.mapviewer.model.map.model.Model;
@@ -21,7 +21,7 @@ public class RemoveElementSynonymsCommand extends RemoveElementPropertyListEntry
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final Logger logger = Logger.getLogger(RemoveElementSynonymsCommand.class);
+	private final Logger logger = LogManager.getLogger(RemoveElementSynonymsCommand.class);
 
 	/**
 	 * Default constructor.
diff --git a/model-command/src/test/java/lcsb/mapviewer/commands/ColorModelCommandTest.java b/model-command/src/test/java/lcsb/mapviewer/commands/ColorModelCommandTest.java
index a7e8702c8fa6596d13dec3033575fef71122e445..ad04e4e0010a5705c1a3b41093af37912cb6027e 100644
--- a/model-command/src/test/java/lcsb/mapviewer/commands/ColorModelCommandTest.java
+++ b/model-command/src/test/java/lcsb/mapviewer/commands/ColorModelCommandTest.java
@@ -11,7 +11,7 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -32,7 +32,7 @@ import lcsb.mapviewer.model.map.species.GenericProtein;
 import lcsb.mapviewer.model.map.species.Protein;
 
 public class ColorModelCommandTest extends CommandTestFunctions {
-  Logger logger = Logger.getLogger(ColorModelCommandTest.class);
+  Logger logger = LogManager.getLogger(ColorModelCommandTest.class);
 
   ColorExtractor colorExtractor = new ColorExtractor(Color.RED, Color.GREEN, Color.BLUE);
 
diff --git a/model-command/src/test/java/lcsb/mapviewer/commands/CommandTestFunctions.java b/model-command/src/test/java/lcsb/mapviewer/commands/CommandTestFunctions.java
index b003428d07128446273a0ad8a6dca29b976e0db5..1a835fc4456d50a8e15760b8b04abb6f6eb48637 100644
--- a/model-command/src/test/java/lcsb/mapviewer/commands/CommandTestFunctions.java
+++ b/model-command/src/test/java/lcsb/mapviewer/commands/CommandTestFunctions.java
@@ -8,7 +8,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.converter.ConverterParams;
 import lcsb.mapviewer.converter.InvalidInputDataExecption;
@@ -23,7 +23,7 @@ import lcsb.mapviewer.model.map.species.GenericProtein;
 public abstract class CommandTestFunctions {
   public double EPSILON = 1e-6;
 
-  Logger logger = Logger.getLogger(CommandTestFunctions.class);
+  Logger logger = LogManager.getLogger(CommandTestFunctions.class);
 
   private static Map<String, Model> models = new HashMap<String, Model>();
 
diff --git a/model-command/src/test/java/lcsb/mapviewer/commands/CreateHierarchyCommandTest.java b/model-command/src/test/java/lcsb/mapviewer/commands/CreateHierarchyCommandTest.java
index 70809cf5ae2f8e040010437622e51e87482a4a7f..f1fefd41d7a859ca5f353f2084978ddbbeaf9961 100644
--- a/model-command/src/test/java/lcsb/mapviewer/commands/CreateHierarchyCommandTest.java
+++ b/model-command/src/test/java/lcsb/mapviewer/commands/CreateHierarchyCommandTest.java
@@ -14,7 +14,7 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -30,7 +30,7 @@ import lcsb.mapviewer.model.map.species.Species;
 import lcsb.mapviewer.modelutils.map.ElementUtils;
 
 public class CreateHierarchyCommandTest extends CommandTestFunctions {
-  Logger logger = Logger.getLogger(CreateHierarchyCommandTest.class);
+  Logger logger = LogManager.getLogger(CreateHierarchyCommandTest.class);
 
   @Before
   public void setUp() throws Exception {
diff --git a/model-command/src/test/resources/log4j.properties b/model-command/src/test/resources/log4j.properties
deleted file mode 100644
index 055d98980b4e018a2e889adcf505703be62756c9..0000000000000000000000000000000000000000
--- a/model-command/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-#Set root logger 's level and its appender to an appender called CONSOLE which is defined below.
-log4j.rootLogger=info, CONSOLE
-
-#Set the behavior of the CONSOLE appender 
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-#log4j.appender.CONSOLE.layout.ConversionPattern=%m%n
-
-
-#Set the behavior of the FILE appender 
-log4j.appender.R=org.apache.log4j.FileAppender
-log4j.appender.R.File=${catalina.home}/logs/MapViewer.log
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-
-
-log4j.logger.org.springframework=warn
-log4j.logger.org.hibernate=warn
-log4j.logger.lcsb=debug
diff --git a/model-command/src/test/resources/log4j2.properties b/model-command/src/test/resources/log4j2.properties
new file mode 100644
index 0000000000000000000000000000000000000000..b5eaa32682d177bf266eb6ed4831b4e8f4b9135d
--- /dev/null
+++ b/model-command/src/test/resources/log4j2.properties
@@ -0,0 +1,25 @@
+rootLogger.level = INFO
+appenders = console
+
+appender.console.type = Console
+appender.console.name = STDOUT
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %d %5p [%t] (%F:%L) - %m%n
+
+rootLogger.appenderRefs = console
+
+rootLogger.appenderRef.console.ref = STDOUT
+
+logger.minerva.name = lcsb
+logger.minerva.level = debug
+logger.minerva-persist.name = lcsb.mapviewer.persist.DbUtils
+logger.minerva-persist.level = info
+logger.minerva-cache.name = lcsb.mapviewer.annotation.cache
+logger.minerva-cache.level = info
+
+
+logger.springframework.name = org.springframework
+logger.springframework.level = warn
+
+logger.hibernate.name = org.hibernate
+logger.hibernate.level = warn
diff --git a/model/pom.xml b/model/pom.xml
index 4b9e42594784e985eba784a28b21711b6d53109d..1321aae6e12d367b64dbb16c663094148943f542 100644
--- a/model/pom.xml
+++ b/model/pom.xml
@@ -60,11 +60,21 @@
 			<version>${xml-apis.version}</version>
 		</dependency>
 
-		<!-- Log4j - logging -->
+		<!-- Log4J2-->
 		<dependency>
-			<groupId>log4j</groupId>
-			<artifactId>log4j</artifactId>
-			<version>${log4j.version}</version>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-api</artifactId>
+			<version>${log4j2.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-core</artifactId>
+			<version>${log4j2.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-io</groupId>
+			<artifactId>commons-io</artifactId>
+			<version>${commons-io.version}</version>
 		</dependency>
 
 		<dependency>
diff --git a/model/src/main/java/lcsb/mapviewer/model/Project.java b/model/src/main/java/lcsb/mapviewer/model/Project.java
index 9991f192e912a267ff7afef0ccbc75d2676425c8..acae1a00e9b2188d3b19f239de7e14c3fdfe95aa 100644
--- a/model/src/main/java/lcsb/mapviewer/model/Project.java
+++ b/model/src/main/java/lcsb/mapviewer/model/Project.java
@@ -20,15 +20,16 @@ import javax.persistence.OneToMany;
 import javax.persistence.OneToOne;
 import javax.persistence.OrderBy;
 
-import org.apache.log4j.Appender;
-import org.apache.log4j.Logger;
-import org.apache.log4j.spi.LoggingEvent;
+import org.apache.logging.log4j.*;
+import org.apache.logging.log4j.core.LogEvent;
+
 import org.hibernate.annotations.Cascade;
 import org.hibernate.annotations.CascadeType;
 import org.hibernate.annotations.LazyCollection;
 import org.hibernate.annotations.LazyCollectionOption;
 
-import lcsb.mapviewer.common.EventStorageLoggerAppender;
+
+import lcsb.mapviewer.common.MinervaLoggerAppender;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.model.cache.UploadedFileEntry;
 import lcsb.mapviewer.model.graphics.MapCanvasType;
@@ -54,7 +55,7 @@ public class Project implements Serializable {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(Project.class);
+  private static Logger logger = LogManager.getLogger(Project.class);
 
   /**
   	* 
@@ -479,14 +480,10 @@ public class Project implements Serializable {
    * @param appender
    *          {@link Appender log4j appender} that gathered logs
    */
-  public void addLoggingInfo(EventStorageLoggerAppender appender) {
+  public void addLoggingInfo(MinervaLoggerAppender appender) {
     List<String> warnings = new ArrayList<>();
-    for (LoggingEvent event : appender.getWarnings()) {
-      if (event.getMessage() instanceof String) {
-        warnings.add(((String) event.getMessage()).replaceAll("\n", "_NEW_LINE_"));
-      } else {
-        logger.warn("Unknown message class: " + event.getClass());
-      }
+    for (LogEvent event : appender.getWarnings()) {
+        warnings.add(event.getMessage().getFormattedMessage().replaceAll("\n", "_NEW_LINE_"));
     }
     addWarnings(warnings);
   }
diff --git a/model/src/main/java/lcsb/mapviewer/model/graphics/ArrowTypeDataComparator.java b/model/src/main/java/lcsb/mapviewer/model/graphics/ArrowTypeDataComparator.java
index 9f482e2c3a3b6d988acc9a90130a11759e1d60cd..63a3dfcfd1b5aaa41435b1545fc36c582f8106a8 100644
--- a/model/src/main/java/lcsb/mapviewer/model/graphics/ArrowTypeDataComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/graphics/ArrowTypeDataComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.graphics;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -17,7 +17,7 @@ public class ArrowTypeDataComparator extends Comparator<ArrowTypeData> {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(PolylineDataComparator.class);
+  private static Logger logger = LogManager.getLogger(PolylineDataComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/graphics/PolylineData.java b/model/src/main/java/lcsb/mapviewer/model/graphics/PolylineData.java
index efb5eb7076a0eb4a54aabdcac1a42823147135b2..afeed73af0f6144ca5e338c40d37d5d7829ce60d 100644
--- a/model/src/main/java/lcsb/mapviewer/model/graphics/PolylineData.java
+++ b/model/src/main/java/lcsb/mapviewer/model/graphics/PolylineData.java
@@ -21,7 +21,7 @@ import javax.persistence.Id;
 import javax.persistence.JoinColumn;
 import javax.persistence.OrderColumn;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.hibernate.annotations.Cascade;
 import org.hibernate.annotations.CascadeType;
 import org.hibernate.annotations.Type;
@@ -56,7 +56,7 @@ public class PolylineData implements Serializable, Drawable {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(PolylineData.class);
+  private static Logger logger = LogManager.getLogger(PolylineData.class);
 
   /**
    * Unique identifier in the database.
diff --git a/model/src/main/java/lcsb/mapviewer/model/graphics/PolylineDataComparator.java b/model/src/main/java/lcsb/mapviewer/model/graphics/PolylineDataComparator.java
index edebdb97720fdbef40d0ca0b0381c564fc5bcc81..0dd770744ba0e7160bdb12d1cafc99c80624bfe2 100644
--- a/model/src/main/java/lcsb/mapviewer/model/graphics/PolylineDataComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/graphics/PolylineDataComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.graphics;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -18,7 +18,7 @@ public class PolylineDataComparator extends Comparator<PolylineData> {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(PolylineDataComparator.class);
+  private static Logger logger = LogManager.getLogger(PolylineDataComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/MiriamData.java b/model/src/main/java/lcsb/mapviewer/model/map/MiriamData.java
index 43cfcdceb7be52820a73beb7a42d97c7675e60d9..1c5908da6136362f5cf3b9e200ecedffaff54dd8 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/MiriamData.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/MiriamData.java
@@ -10,7 +10,7 @@ import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.xml.bind.annotation.XmlRootElement;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 
@@ -29,7 +29,7 @@ public class MiriamData implements Comparable<MiriamData>, Serializable {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(MiriamData.class);
+  private static Logger logger = LogManager.getLogger(MiriamData.class);
 
   /**
    * 
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/OverviewImageComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/OverviewImageComparator.java
index 6dc3589c01d45e9e2bb7e3b7bd16b6b2777e8e50..26d2a1a282eb404740e3a1ec8a84d2ebc11ee665 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/OverviewImageComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/OverviewImageComparator.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.model.map;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -19,7 +19,7 @@ public class OverviewImageComparator extends Comparator<OverviewImage> {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(OverviewImageComparator.class);
+  private static Logger logger = LogManager.getLogger(OverviewImageComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/OverviewImageLinkComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/OverviewImageLinkComparator.java
index e4c0b99f0db01b1b7213f6c8321e2b18ee55ab00..df31581e58659c78414032899396db1bb9c9c1a7 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/OverviewImageLinkComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/OverviewImageLinkComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -17,7 +17,7 @@ public class OverviewImageLinkComparator extends Comparator<OverviewImageLink> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(OverviewImageLinkComparator.class);
+  private static Logger logger = LogManager.getLogger(OverviewImageLinkComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/OverviewLinkComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/OverviewLinkComparator.java
index da41e02372051641fc0f1eba2b8be00fa44b1bba..675dde9e30c89b4c2480fd7f6acff8c519e95e00 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/OverviewLinkComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/OverviewLinkComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -17,7 +17,7 @@ public class OverviewLinkComparator extends Comparator<OverviewLink> {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(OverviewLinkComparator.class);
+  private static Logger logger = LogManager.getLogger(OverviewLinkComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/OverviewModelLinkComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/OverviewModelLinkComparator.java
index 3f2154797b86d630bc78788c71294509af8ca5b5..1338b8a25ffa8e40efc61b9fb040c629027ec1be 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/OverviewModelLinkComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/OverviewModelLinkComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -16,7 +16,7 @@ public class OverviewModelLinkComparator extends Comparator<OverviewModelLink> {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(OverviewModelLinkComparator.class);
+  private static Logger logger = LogManager.getLogger(OverviewModelLinkComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/SearchIndex.java b/model/src/main/java/lcsb/mapviewer/model/map/SearchIndex.java
index d50ff698b3cb706c3d034c6ea261a5b839b9097a..d5270b88ad200f75bc0871fbe1d7400387f4091c 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/SearchIndex.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/SearchIndex.java
@@ -8,7 +8,7 @@ import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.ManyToOne;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 import lcsb.mapviewer.model.map.species.Element;
@@ -33,7 +33,7 @@ public class SearchIndex implements Serializable {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(Element.class);
+  private static Logger logger = LogManager.getLogger(Element.class);
 
   /**
    * Database identifier.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/compartment/Compartment.java b/model/src/main/java/lcsb/mapviewer/model/map/compartment/Compartment.java
index 07b4a36208154e513fb0e543683be7d2a11099b6..7e023dda8bd0dd834e28c8a35c0584d65b70647d 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/compartment/Compartment.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/compartment/Compartment.java
@@ -10,7 +10,7 @@ import javax.persistence.Entity;
 import javax.persistence.FetchType;
 import javax.persistence.OneToMany;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.hibernate.annotations.Cascade;
 import org.hibernate.annotations.CascadeType;
 import org.hibernate.annotations.Type;
@@ -59,7 +59,7 @@ public class Compartment extends Element {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(Compartment.class);
+  private static Logger logger = LogManager.getLogger(Compartment.class);
 
   /**
    * Thickness of the compartment border.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/compartment/CompartmentComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/compartment/CompartmentComparator.java
index f47201b4d80854dfd47582cceb3fa8b315f82b26..7b4b97c17b5678ae60a1a0f4335903e82c97ebae 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/compartment/CompartmentComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/compartment/CompartmentComparator.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.model.map.compartment;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -27,7 +27,7 @@ public class CompartmentComparator extends Comparator<Compartment> {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(CompartmentComparator.class);
+  private static Logger logger = LogManager.getLogger(CompartmentComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/compartment/RightSquareCompartment.java b/model/src/main/java/lcsb/mapviewer/model/map/compartment/RightSquareCompartment.java
index 9e0d72ac372390b0eaac0c5af1d9729ed17d8af9..d6dd6c0614fda04ea58b2704f890ec33d4064c99 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/compartment/RightSquareCompartment.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/compartment/RightSquareCompartment.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.model.map.compartment;
 import javax.persistence.DiscriminatorValue;
 import javax.persistence.Entity;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 import lcsb.mapviewer.model.map.model.Model;
@@ -27,7 +27,7 @@ public class RightSquareCompartment extends Compartment {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(RightSquareCompartment.class);
+  private static Logger logger = LogManager.getLogger(RightSquareCompartment.class);
 
   /**
    * Empty constructor required by hibernate.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlFunction.java b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlFunction.java
index d58764f20dc921d017bbd0732255b292739f0d0a..70116802e06cbb5dba4de8368ca68d3f0485c154 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlFunction.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlFunction.java
@@ -17,7 +17,7 @@ import javax.persistence.ManyToOne;
 import javax.persistence.OrderColumn;
 import javax.xml.bind.annotation.XmlRootElement;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.map.model.ModelData;
 
@@ -35,7 +35,7 @@ public class SbmlFunction implements Serializable, SbmlArgument {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(SbmlFunction.class);
+  private static Logger logger = LogManager.getLogger(SbmlFunction.class);
 
   /**
    * 
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlFunctionComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlFunctionComparator.java
index b86fd6d2c9f8a675c0f1f85e3b0b15674c0e300a..877f176ac9534fb67dd5102a84a3ee35d1dd04e3 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlFunctionComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlFunctionComparator.java
@@ -1,13 +1,13 @@
 package lcsb.mapviewer.model.map.kinetics;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.comparator.StringComparator;
 import lcsb.mapviewer.common.comparator.StringListComparator;
 
 public class SbmlFunctionComparator extends Comparator<SbmlFunction> {
-  private static Logger logger = Logger.getLogger(SbmlFunctionComparator.class);
+  private static Logger logger = LogManager.getLogger(SbmlFunctionComparator.class);
 
   public SbmlFunctionComparator() {
     super(SbmlFunction.class);
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlKinetics.java b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlKinetics.java
index ad518818a370925dd08adf40598dea59d39ac0c2..7e3ce2c1acc2f3d3905d404b7d17aa3a2a452ac5 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlKinetics.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlKinetics.java
@@ -18,7 +18,7 @@ import javax.persistence.JoinTable;
 import javax.persistence.ManyToMany;
 import javax.xml.bind.annotation.XmlRootElement;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.hibernate.annotations.Cascade;
 import org.hibernate.annotations.CascadeType;
 
@@ -38,7 +38,7 @@ public class SbmlKinetics implements Serializable {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(SbmlKinetics.class);
+  private static Logger logger = LogManager.getLogger(SbmlKinetics.class);
 
   /**
    * 
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlKineticsComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlKineticsComparator.java
index 8a8788e5d98e83c9f239c73eeda2c5cbc23a09bb..e7d68acfcde2018b9b226f449f454a528dca4dc6 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlKineticsComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlKineticsComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map.kinetics;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.comparator.SetComparator;
@@ -10,7 +10,7 @@ import lcsb.mapviewer.model.map.species.ElementComparator;
 
 public class SbmlKineticsComparator extends Comparator<SbmlKinetics> {
 
-  private static Logger logger = Logger.getLogger(SbmlKineticsComparator.class);
+  private static Logger logger = LogManager.getLogger(SbmlKineticsComparator.class);
 
   public SbmlKineticsComparator() {
     super(SbmlKinetics.class);
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlParameter.java b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlParameter.java
index 72acf2ac79e33ce6d64a1679197fee133f04cf52..11f1a5454638c30020fbc51c4ef7ae5c69d142d8 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlParameter.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlParameter.java
@@ -9,7 +9,7 @@ import javax.persistence.Id;
 import javax.persistence.ManyToOne;
 import javax.xml.bind.annotation.XmlRootElement;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Representation of a single SBML parameter
@@ -25,7 +25,7 @@ public class SbmlParameter implements Serializable, SbmlArgument {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(SbmlParameter.class);
+  private static Logger logger = LogManager.getLogger(SbmlParameter.class);
 
   /**
    * 
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlUnit.java b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlUnit.java
index 5ac2cee517801d6d2605859928c2172c57bde5c3..d9242e6c69ddadab6c5bd2aa844089c10b96ac53 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlUnit.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlUnit.java
@@ -13,7 +13,7 @@ import javax.persistence.ManyToOne;
 import javax.persistence.OneToMany;
 import javax.xml.bind.annotation.XmlRootElement;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.hibernate.annotations.Cascade;
 import org.hibernate.annotations.CascadeType;
 
@@ -33,7 +33,7 @@ public class SbmlUnit implements Serializable {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(SbmlUnit.class);
+  private static Logger logger = LogManager.getLogger(SbmlUnit.class);
 
   /**
    * 
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlUnitComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlUnitComparator.java
index c337b5a76967daab03f4f071952503cdffa6b576..2144c14b648866ec0315d60c9c8fa700d91466e6 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlUnitComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlUnitComparator.java
@@ -1,13 +1,13 @@
 package lcsb.mapviewer.model.map.kinetics;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.comparator.SetComparator;
 import lcsb.mapviewer.common.comparator.StringComparator;
 
 public class SbmlUnitComparator extends Comparator<SbmlUnit> {
-  private static Logger logger =Logger.getLogger(SbmlUnitComparator.class);
+  private static Logger logger =LogManager.getLogger(SbmlUnitComparator.class);
 
   public SbmlUnitComparator() {
     super(SbmlUnit.class);
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlUnitTypeFactor.java b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlUnitTypeFactor.java
index da2b39f38b0145fa5f911e06101536ed1991c206..bea7bc652aa87b28c01374190896f0dc99163a0b 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlUnitTypeFactor.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/kinetics/SbmlUnitTypeFactor.java
@@ -12,7 +12,7 @@ import javax.persistence.Id;
 import javax.persistence.ManyToOne;
 import javax.xml.bind.annotation.XmlRootElement;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Representation of a single SBML unit factor. For example unit for velocity is
@@ -33,7 +33,7 @@ public class SbmlUnitTypeFactor implements Serializable {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(SbmlUnitTypeFactor.class);
+  private static Logger logger = LogManager.getLogger(SbmlUnitTypeFactor.class);
 
   /**
    * 
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/layout/DataOverlayImageLayer.java b/model/src/main/java/lcsb/mapviewer/model/map/layout/DataOverlayImageLayer.java
index a197df698e4ac6e3b99f65ecdce64cb0536df71e..cbba9f6cac2b15044a8f32660420dc5fd9f8804d 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/layout/DataOverlayImageLayer.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/layout/DataOverlayImageLayer.java
@@ -10,7 +10,7 @@ import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.ManyToOne;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.map.model.Model;
 import lcsb.mapviewer.model.map.model.ModelData;
@@ -41,7 +41,7 @@ public class DataOverlayImageLayer implements Serializable {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(DataOverlayImageLayer.class);
+  private static Logger logger = LogManager.getLogger(DataOverlayImageLayer.class);
 
   /**
    * Unique database identifier.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/layout/GeneVariation.java b/model/src/main/java/lcsb/mapviewer/model/map/layout/GeneVariation.java
index 8641dd83ec373dc5ea1a5dec0d322abd731750a1..bb70cad70962d7f7800121db46ccb9390e269c15 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/layout/GeneVariation.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/layout/GeneVariation.java
@@ -5,7 +5,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 import lcsb.mapviewer.model.map.MiriamData;
@@ -22,7 +22,7 @@ public class GeneVariation implements Serializable {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(GeneVariation.class);
+  private static Logger logger = LogManager.getLogger(GeneVariation.class);
 
   /**
    * 
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/layout/Layout.java b/model/src/main/java/lcsb/mapviewer/model/map/layout/Layout.java
index 4e3537e542a2c4a6952a76012bfcbf52ad9c4082..af80343e5726a48973483c2fc8acf92be67786a2 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/layout/Layout.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/layout/Layout.java
@@ -18,7 +18,7 @@ import javax.persistence.ManyToOne;
 import javax.persistence.OneToMany;
 import javax.persistence.OneToOne;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.hibernate.annotations.Cascade;
 import org.hibernate.annotations.CascadeType;
 
@@ -60,7 +60,7 @@ public class Layout implements Serializable {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(Layout.class);
+  private static Logger logger = LogManager.getLogger(Layout.class);
 
   /**
    * Unique database identifier.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/Glyph.java b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/Glyph.java
index d23576df24d89847075622045b5e14230b82f523..7aba408a260c5f5c0a2c74c4cbdade026517ac35 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/Glyph.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/Glyph.java
@@ -11,7 +11,7 @@ import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
 import javax.persistence.OneToOne;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.hibernate.annotations.Cascade;
 import org.hibernate.annotations.CascadeType;
 
@@ -37,7 +37,7 @@ public class Glyph implements Serializable {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(Glyph.class);
+  private static Logger logger = LogManager.getLogger(Glyph.class);
 
   /**
    * Unique database identifier.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/Layer.java b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/Layer.java
index 7b397afc3a648759fdd13391c641a5fcc5ebccef..0574b9248b80007cdf5fcb0f68a2183f51ef51da 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/Layer.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/Layer.java
@@ -18,7 +18,7 @@ import javax.persistence.ManyToOne;
 import javax.persistence.OneToMany;
 import javax.persistence.OrderColumn;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.hibernate.annotations.Cascade;
 import org.hibernate.annotations.CascadeType;
 
@@ -46,7 +46,7 @@ public class Layer implements Serializable {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(Layer.class);
+  private static Logger logger = LogManager.getLogger(Layer.class);
 
   /**
    * Unique database identifier.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerComparator.java
index 85275170e84baef0d132b2084a84994fb8e6b866..0c6ec1a1b2c9eb27f681fb8fde3783bd8f57e75c 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map.layout.graphics;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -21,7 +21,7 @@ public class LayerComparator extends Comparator<Layer> {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(LayerComparator.class);
+  private static Logger logger = LogManager.getLogger(LayerComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerOval.java b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerOval.java
index 88b9d684d2a82df5132f679656a950dd0602da35..c6378b539f7e40c65f4248538775decfc355e900 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerOval.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerOval.java
@@ -8,7 +8,7 @@ import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.common.exception.NotImplementedException;
@@ -32,7 +32,7 @@ public class LayerOval implements Serializable, Drawable {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(LayerOval.class);
+  private static Logger logger = LogManager.getLogger(LayerOval.class);
 
   /**
    * Unique database identifier.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerRect.java b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerRect.java
index e0a163b9f8e7eec8f5d93f063b99f26fd63258ce..64c003fc344e55a500fa2b894abdd26d850ffbdf 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerRect.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerRect.java
@@ -8,7 +8,7 @@ import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.common.exception.NotImplementedException;
@@ -32,7 +32,7 @@ public class LayerRect implements Serializable, Drawable {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(LayerRect.class);
+  private static Logger logger = LogManager.getLogger(LayerRect.class);
 
   /**
    * Unique database identifier.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerText.java b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerText.java
index d866c3e6e1d2d300460fa81aa696a47a8415be1a..0e64330431cd0e83aab853ddc444e83cc41ff194 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerText.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerText.java
@@ -9,7 +9,7 @@ import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.common.exception.NotImplementedException;
@@ -38,7 +38,7 @@ public class LayerText implements Serializable, Drawable {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(LayerText.class);
+  private static Logger logger = LogManager.getLogger(LayerText.class);
 
   /**
    * Unique database identifier.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/model/Author.java b/model/src/main/java/lcsb/mapviewer/model/map/model/Author.java
index b2356b5d99fe75004f9cb8e026664185052a47bf..54f5052ba6d6dcdc79de1e21127db81ab04cc1d5 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/model/Author.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/model/Author.java
@@ -8,7 +8,7 @@ import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.xml.bind.annotation.XmlRootElement;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Class representing author object.
@@ -24,7 +24,7 @@ public class Author implements Serializable {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(Author.class);
+  private static Logger logger = LogManager.getLogger(Author.class);
 
   /**
    * 
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/model/AuthorComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/model/AuthorComparator.java
index 0d9a5041c87718f0fd31bf857ff2725ef60efd77..5ea4038644cb398a3f55eb8ccd935eeaee1e1112 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/model/AuthorComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/model/AuthorComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map.model;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.comparator.StringComparator;
@@ -16,7 +16,7 @@ public class AuthorComparator extends Comparator<Author> {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(AuthorComparator.class);
+  private static Logger logger = LogManager.getLogger(AuthorComparator.class);
 
   /**
    * Default constructor.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/model/ElementSubmodelConnectionComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/model/ElementSubmodelConnectionComparator.java
index f1b7c20a8c1c132798d20bcd225b570500a8a7b7..c56a1ea9b2b8e23b340d1fca2250d3fadfcdebcc 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/model/ElementSubmodelConnectionComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/model/ElementSubmodelConnectionComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map.model;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -19,7 +19,7 @@ public class ElementSubmodelConnectionComparator extends Comparator<ElementSubmo
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(ElementSubmodelConnectionComparator.class);
+  private static Logger logger = LogManager.getLogger(ElementSubmodelConnectionComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/model/ModelComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/model/ModelComparator.java
index 16db3ff74a6440eca97e1b83ddf3a72d3b53b3cf..64bc7bed76ff4b1a2a27375a22f4e1230c9027a5 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/model/ModelComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/model/ModelComparator.java
@@ -6,7 +6,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -42,7 +42,7 @@ public class ModelComparator extends Comparator<Model> {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(ModelComparator.class);
+  private static Logger logger = LogManager.getLogger(ModelComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/model/ModelData.java b/model/src/main/java/lcsb/mapviewer/model/map/model/ModelData.java
index beb6cf78f3f2150082e00c6f62a48d7b172ca43d..eba400c886cccb3bb7ffef0fcd2b8bdef343499f 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/model/ModelData.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/model/ModelData.java
@@ -25,7 +25,7 @@ import javax.persistence.OrderColumn;
 import javax.persistence.Transient;
 import javax.xml.bind.annotation.XmlTransient;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.hibernate.annotations.Cascade;
 import org.hibernate.annotations.CascadeType;
 
@@ -67,7 +67,7 @@ public class ModelData implements Serializable {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(ModelData.class);
+  private static Logger logger = LogManager.getLogger(ModelData.class);
 
   /**
    * Set of all elements in the map.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/model/ModelFullIndexed.java b/model/src/main/java/lcsb/mapviewer/model/map/model/ModelFullIndexed.java
index 5487e7011d3cc0c9468d7984620ae3b79e15bbba..bd7085a6b1ea50e005457d0275147d689f9562de 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/model/ModelFullIndexed.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/model/ModelFullIndexed.java
@@ -10,7 +10,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.model.Project;
@@ -43,7 +43,7 @@ public class ModelFullIndexed implements Model {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(ModelFullIndexed.class);
+  private static Logger logger = LogManager.getLogger(ModelFullIndexed.class);
 
   /**
    * Object that map {@link Element#elementId element identifier} into
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/model/ModelSubmodelConnectionComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/model/ModelSubmodelConnectionComparator.java
index 40af213f7298f3168f1e14b739ae3686790838a0..2d7849907cd3e7b8db9481ff654d5dc7939bec65 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/model/ModelSubmodelConnectionComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/model/ModelSubmodelConnectionComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map.model;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -16,7 +16,7 @@ public class ModelSubmodelConnectionComparator extends Comparator<ModelSubmodelC
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(ModelSubmodelConnectionComparator.class);
+  private static Logger logger = LogManager.getLogger(ModelSubmodelConnectionComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/model/SubmodelConnection.java b/model/src/main/java/lcsb/mapviewer/model/map/model/SubmodelConnection.java
index ed9bdc1e60922ec8aa6d608288470e7266775e3b..9cf64cd9ac4d16a201afb8f21414a5be097062ca 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/model/SubmodelConnection.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/model/SubmodelConnection.java
@@ -16,7 +16,7 @@ import javax.persistence.Inheritance;
 import javax.persistence.InheritanceType;
 import javax.persistence.ManyToOne;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * This abstract class defines connection between models. It points to submodel
@@ -40,7 +40,7 @@ public abstract class SubmodelConnection implements Serializable {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(SubmodelConnection.class);
+  private static Logger logger = LogManager.getLogger(SubmodelConnection.class);
 
   /**
    * Database identifier.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/model/SubmodelConnectionComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/model/SubmodelConnectionComparator.java
index f044d6c7f6581b406fe72c684a525ff413966b5e..947b83716e89f465e2a01bdc08c4c26bdb299ac5 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/model/SubmodelConnectionComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/model/SubmodelConnectionComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map.model;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -18,7 +18,7 @@ public class SubmodelConnectionComparator extends Comparator<SubmodelConnection>
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(SubmodelConnection.class);
+  private static Logger logger = LogManager.getLogger(SubmodelConnection.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/reaction/AbstractNodeComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/reaction/AbstractNodeComparator.java
index 207f3c4f46b818c1a139f76e48b62ac8288ce407..37f633f246c3e78f503a6becb9090898049ad6bd 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/reaction/AbstractNodeComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/reaction/AbstractNodeComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map.reaction;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -17,7 +17,7 @@ public class AbstractNodeComparator extends Comparator<AbstractNode> {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(AbstractNodeComparator.class);
+  private static Logger logger = LogManager.getLogger(AbstractNodeComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/reaction/AndOperator.java b/model/src/main/java/lcsb/mapviewer/model/map/reaction/AndOperator.java
index 8fde0ea87e927b3103266793ce77def7ac1be646..53856fec5d56bb3d205d1b11f7d2f689f4eed03c 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/reaction/AndOperator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/reaction/AndOperator.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.model.map.reaction;
 import javax.persistence.DiscriminatorValue;
 import javax.persistence.Entity;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 
@@ -26,7 +26,7 @@ public class AndOperator extends NodeOperator {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger			logger					 = Logger.getLogger(AndOperator.class);
+	private static Logger			logger					 = LogManager.getLogger(AndOperator.class);
 
 	/**
 	 * Constructor that copies data from the parameter given in the argument.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/reaction/AssociationOperator.java b/model/src/main/java/lcsb/mapviewer/model/map/reaction/AssociationOperator.java
index fcdea08a0e6062da1e0a5f0439ac53c2cbb6f6a6..7859ae764e9a4425c77adfc5d86a8ea1518e7ed2 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/reaction/AssociationOperator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/reaction/AssociationOperator.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.model.map.reaction;
 import javax.persistence.DiscriminatorValue;
 import javax.persistence.Entity;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 
@@ -28,7 +28,7 @@ public class AssociationOperator extends NodeOperator {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger			logger					 = Logger.getLogger(AssociationOperator.class);
+	private static Logger			logger					 = LogManager.getLogger(AssociationOperator.class);
 
 	/**
 	 * Constructor that copies data from the parameter given in the argument.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/reaction/DissociationOperator.java b/model/src/main/java/lcsb/mapviewer/model/map/reaction/DissociationOperator.java
index 6453ede8c1f6e01aefe67cd24a9358e9aadab835..462044be1d385df3d384a792b68a188e9be8832e 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/reaction/DissociationOperator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/reaction/DissociationOperator.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.model.map.reaction;
 import javax.persistence.DiscriminatorValue;
 import javax.persistence.Entity;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 
@@ -27,7 +27,7 @@ public class DissociationOperator extends NodeOperator {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger	logger	= Logger.getLogger(DissociationOperator.class);
+	private static Logger	logger	= LogManager.getLogger(DissociationOperator.class);
 
 	/**
 	 * Constructor that copies data from the parameter given in the argument.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/reaction/NandOperator.java b/model/src/main/java/lcsb/mapviewer/model/map/reaction/NandOperator.java
index bc88d04dbdd62703c6dab9de40d98003a79e1997..13a7f475f4b65bbd1a9ca19af430cb9f93d61271 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/reaction/NandOperator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/reaction/NandOperator.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.model.map.reaction;
 import javax.persistence.DiscriminatorValue;
 import javax.persistence.Entity;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 
@@ -26,7 +26,7 @@ public class NandOperator extends NodeOperator {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger			logger						= Logger.getLogger(NandOperator.class);
+	private static Logger			logger						= LogManager.getLogger(NandOperator.class);
 
 	/**
 	 * Constructor that copies data from the parameter given in the argument.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/reaction/NodeOperator.java b/model/src/main/java/lcsb/mapviewer/model/map/reaction/NodeOperator.java
index e340714aee15b4e44dc0ed9041c6e67143519278..ce0d9e141203145391bf701cddd4aa12878c7441 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/reaction/NodeOperator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/reaction/NodeOperator.java
@@ -10,7 +10,7 @@ import javax.persistence.FetchType;
 import javax.persistence.OneToMany;
 import javax.persistence.OrderBy;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.hibernate.annotations.Cascade;
 import org.hibernate.annotations.CascadeType;
 
@@ -56,7 +56,7 @@ public abstract class NodeOperator extends AbstractNode {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(NodeOperator.class);
+  private static Logger logger = LogManager.getLogger(NodeOperator.class);
 
   /**
    * List of input nodes.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/reaction/NodeOperatorComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/reaction/NodeOperatorComparator.java
index ea25564281b637d18939edaa0c5e5ea66e9147f5..f5af2d3b7c8e2929a4c58f68bd4701bef47664bb 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/reaction/NodeOperatorComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/reaction/NodeOperatorComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map.reaction;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -18,7 +18,7 @@ public class NodeOperatorComparator extends Comparator<NodeOperator> {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(NodeOperatorComparator.class);
+  private static Logger logger = LogManager.getLogger(NodeOperatorComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/reaction/OrOperator.java b/model/src/main/java/lcsb/mapviewer/model/map/reaction/OrOperator.java
index 267fab63a6b96eca80f08d9edb4a55bc069ebdcb..21613a239b5583bc25b31978612ac24425a3a9d7 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/reaction/OrOperator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/reaction/OrOperator.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.model.map.reaction;
 import javax.persistence.DiscriminatorValue;
 import javax.persistence.Entity;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 
@@ -27,7 +27,7 @@ public class OrOperator extends NodeOperator {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger	logger	= Logger.getLogger(OrOperator.class);
+	private static Logger	logger	= LogManager.getLogger(OrOperator.class);
 
 	/**
 	 * Constructor that copies data from the parameter given in the argument.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/reaction/Reaction.java b/model/src/main/java/lcsb/mapviewer/model/map/reaction/Reaction.java
index 1958029d3bcd536d81f27cb474baef9d69bf4f3a..d7b70ba297e9409c14b9f3af0ce1b5d58ce5e6ee 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/reaction/Reaction.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/reaction/Reaction.java
@@ -32,7 +32,7 @@ import javax.persistence.OrderBy;
 import javax.persistence.OrderColumn;
 import javax.xml.bind.annotation.XmlTransient;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.hibernate.annotations.Cascade;
 import org.hibernate.annotations.CascadeType;
 
@@ -98,7 +98,7 @@ public class Reaction implements BioEntity {
    * Default class logger.
    */
 
-  private static Logger logger = Logger.getLogger(Reaction.class.getName());
+  private static Logger logger = LogManager.getLogger(Reaction.class.getName());
 
   /**
    * Unique database identifier.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/reaction/ReactionComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/reaction/ReactionComparator.java
index 9635897c8ac447d1b1c91654ea7cdf8b5c564eee..b1f9774eb59ba2e318765a31c79c7f210fdaa2f5 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/reaction/ReactionComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/reaction/ReactionComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map.reaction;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -24,7 +24,7 @@ public class ReactionComparator extends Comparator<Reaction> {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(ReactionComparator.class);
+  private static Logger logger = LogManager.getLogger(ReactionComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/reaction/ReactionNodeComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/reaction/ReactionNodeComparator.java
index c9d7c065c847574d5a0602ae22eaf20d6f80d0c4..45afc2953e4a130a427048001afa73fa528e4bd6 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/reaction/ReactionNodeComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/reaction/ReactionNodeComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map.reaction;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -19,7 +19,7 @@ public class ReactionNodeComparator extends Comparator<ReactionNode> {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(ReactionNodeComparator.class);
+  private static Logger logger = LogManager.getLogger(ReactionNodeComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/reaction/SplitOperator.java b/model/src/main/java/lcsb/mapviewer/model/map/reaction/SplitOperator.java
index 4ebb08b8666fc937378e1e05c9e9629b33209291..4affd22bac1bb86ccba16a689197801b7377ff62 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/reaction/SplitOperator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/reaction/SplitOperator.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.model.map.reaction;
 import javax.persistence.DiscriminatorValue;
 import javax.persistence.Entity;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 
@@ -27,7 +27,7 @@ public class SplitOperator extends NodeOperator {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger	logger	= Logger.getLogger(SplitOperator.class);
+	private static Logger	logger	= LogManager.getLogger(SplitOperator.class);
 
 	/**
 	 * Constructor that copies data from the parameter given in the argument.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/reaction/TruncationOperator.java b/model/src/main/java/lcsb/mapviewer/model/map/reaction/TruncationOperator.java
index a9c96692b8f988c388ba9808405a404c547ffb38..b9850c2681176cac5b833dac8f0906e08d2e890e 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/reaction/TruncationOperator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/reaction/TruncationOperator.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.model.map.reaction;
 import javax.persistence.DiscriminatorValue;
 import javax.persistence.Entity;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 
@@ -27,7 +27,7 @@ public class TruncationOperator extends NodeOperator {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger	logger	= Logger.getLogger(TruncationOperator.class);
+	private static Logger	logger	= LogManager.getLogger(TruncationOperator.class);
 
 	/**
 	 * Constructor that copies data from the parameter given in the argument.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/reaction/UnknownOperator.java b/model/src/main/java/lcsb/mapviewer/model/map/reaction/UnknownOperator.java
index 01f80e6d22345961a1453b5222f86e7fad7ad420..ae3f63f81b45aedf79818aed344830fcec324920 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/reaction/UnknownOperator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/reaction/UnknownOperator.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.model.map.reaction;
 import javax.persistence.DiscriminatorValue;
 import javax.persistence.Entity;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 
@@ -27,7 +27,7 @@ public class UnknownOperator extends NodeOperator {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger	logger	= Logger.getLogger(UnknownOperator.class);
+	private static Logger	logger	= LogManager.getLogger(UnknownOperator.class);
 
 	/**
 	 * Constructor that copies data from the parameter given in the argument.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/AntisenseRnaComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/species/AntisenseRnaComparator.java
index c81aa87861808e327f1772886f0f58f6f46f0839..d50acfca12b854d2a11b282dde64eff479815df7 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/AntisenseRnaComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/AntisenseRnaComparator.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.model.map.species;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -22,7 +22,7 @@ public class AntisenseRnaComparator extends Comparator<AntisenseRna> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(AntisenseRnaComparator.class);
+  private static Logger logger = LogManager.getLogger(AntisenseRnaComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/ChemicalComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/species/ChemicalComparator.java
index 89cde448fea49cdab3d044c7b93fe9f7a9f541cf..b6c41465cf7da963f7113e895849aebb3ad25fb3 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/ChemicalComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/ChemicalComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map.species;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -17,7 +17,7 @@ public class ChemicalComparator extends Comparator<Chemical> {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(ChemicalComparator.class);
+  private static Logger logger = LogManager.getLogger(ChemicalComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/Complex.java b/model/src/main/java/lcsb/mapviewer/model/map/species/Complex.java
index d41f4423491e8245a473bd76fe71c4afe21c00ee..673f30044bd03480e3cd26289512d859a9ebe48c 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/Complex.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/Complex.java
@@ -10,7 +10,7 @@ import javax.persistence.Entity;
 import javax.persistence.FetchType;
 import javax.persistence.OneToMany;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.hibernate.annotations.Cascade;
 import org.hibernate.annotations.CascadeType;
 
@@ -35,7 +35,7 @@ public class Complex extends Species {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(Complex.class);
+  private static Logger logger = LogManager.getLogger(Complex.class);
 
   /**
    * List of elements that are in this complex (only elements that lies there
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/ComplexComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/species/ComplexComparator.java
index ccfe3537aaa7d3c41510d392b4682f8697dd6257..980548937b0e12b1eccb8ab4a744d2df36d0db9b 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/ComplexComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/ComplexComparator.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.model.map.species;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -21,7 +21,7 @@ public class ComplexComparator extends Comparator<Complex> {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(ComplexComparator.class);
+  private static Logger logger = LogManager.getLogger(ComplexComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/DegradedComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/species/DegradedComparator.java
index 0f578f4414f625c9b736fdf4263c0ffd80fbc70b..533decd1db365be4cce9bacf6acb57a62d331ffc 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/DegradedComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/DegradedComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map.species;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -17,7 +17,7 @@ public class DegradedComparator extends Comparator<Degraded> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(DegradedComparator.class);
+  private static Logger logger = LogManager.getLogger(DegradedComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/DrugComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/species/DrugComparator.java
index f1d068a96508d4e0dbdcdf88d96047371483fdb3..3b6e6ae294bedfb3ab3b0e7ee19c43fed3dcedce 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/DrugComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/DrugComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map.species;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -17,7 +17,7 @@ public class DrugComparator extends Comparator<Drug> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(DrugComparator.class);
+  private static Logger logger = LogManager.getLogger(DrugComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/Element.java b/model/src/main/java/lcsb/mapviewer/model/map/species/Element.java
index 1d3ac88910a57f968efda182a040bf44ba50fab3..b12449a84153655e844083de981d2c1ce0d21c16 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/Element.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/Element.java
@@ -32,7 +32,7 @@ import javax.persistence.OneToMany;
 import javax.persistence.OrderColumn;
 import javax.xml.bind.annotation.XmlTransient;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.hibernate.annotations.Cascade;
 import org.hibernate.annotations.CascadeType;
 
@@ -100,7 +100,7 @@ public abstract class Element implements BioEntity, Serializable, SbmlArgument {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(Element.class);
+  private static Logger logger = LogManager.getLogger(Element.class);
 
   /**
    * Database identifier.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/ElementComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/species/ElementComparator.java
index bed6b9ef4f8997dbd948ad30f6110dade4d233ed..4fc14abe8aabb03dbaa29c4f8b8cffcec9a659ed 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/ElementComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/ElementComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map.species;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -25,7 +25,7 @@ public class ElementComparator extends Comparator<Element> {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(ElementComparator.class);
+  private static Logger logger = LogManager.getLogger(ElementComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/Gene.java b/model/src/main/java/lcsb/mapviewer/model/map/species/Gene.java
index f27bfbc731d3124b950a6cd18974602f00eee819..729c75d53b8a30d40037b981bb16aaf77ed626c9 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/Gene.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/Gene.java
@@ -7,7 +7,7 @@ import javax.persistence.DiscriminatorValue;
 import javax.persistence.Entity;
 import javax.persistence.OneToMany;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.hibernate.annotations.Cascade;
 import org.hibernate.annotations.CascadeType;
 import org.hibernate.annotations.LazyCollection;
@@ -35,7 +35,7 @@ import lcsb.mapviewer.model.map.species.field.TranscriptionSite;
 public class Gene extends Species implements SpeciesWithCodingRegion, SpeciesWithModificationSite, SpeciesWithRegulatoryRegion, SpeciesWithTranscriptionSite {
   
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(Gene.class);
+  private static Logger logger = LogManager.getLogger(Gene.class);
 
   /**
    * 
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/GeneComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/species/GeneComparator.java
index 2d33a2e413925b467b74d07c7388e67f7bc28a79..566af4a3521f708393937d0ed3dc450fe595a9ca 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/GeneComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/GeneComparator.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.model.map.species;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -22,7 +22,7 @@ public class GeneComparator extends Comparator<Gene> {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(GeneComparator.class);
+  private static Logger logger = LogManager.getLogger(GeneComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/GenericProteinComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/species/GenericProteinComparator.java
index a87f3855e27025b51d915958dd9ba3325c6f5a64..d49c07d7b01ec133730f56cde9a057c80688c79e 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/GenericProteinComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/GenericProteinComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map.species;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -17,7 +17,7 @@ public class GenericProteinComparator extends Comparator<GenericProtein> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(GenericProteinComparator.class);
+  private static Logger logger = LogManager.getLogger(GenericProteinComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/IonChannelProteinComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/species/IonChannelProteinComparator.java
index 6006187ed1323258ba0e22546afe0cb356fdf01d..9cd67ad455c67ce47c159d3fd9c4fe9311189ae6 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/IonChannelProteinComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/IonChannelProteinComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map.species;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -17,7 +17,7 @@ public class IonChannelProteinComparator extends Comparator<IonChannelProtein> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(IonChannelProteinComparator.class);
+  private static Logger logger = LogManager.getLogger(IonChannelProteinComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/IonComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/species/IonComparator.java
index 63126506ac69a880f740d18315cda587cbe3a5ad..bdcc6c159aef2be37aa94ccc3e75bc519997624e 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/IonComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/IonComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map.species;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -17,7 +17,7 @@ public class IonComparator extends Comparator<Ion> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(IonComparator.class);
+  private static Logger logger = LogManager.getLogger(IonComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/PhenotypeComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/species/PhenotypeComparator.java
index c0a199ca92096fd60c53f2e97b4906b1d4a3db73..398feb5823699ae4d3f868e2912af366c8e7db37 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/PhenotypeComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/PhenotypeComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map.species;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -17,7 +17,7 @@ public class PhenotypeComparator extends Comparator<Phenotype> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(PhenotypeComparator.class);
+  private static Logger logger = LogManager.getLogger(PhenotypeComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/ProteinComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/species/ProteinComparator.java
index 5deb711e159257077e98528a5238a224ddc8bf38..67140df7bb4010ba2b956ce133fc1ca06fe764ea 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/ProteinComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/ProteinComparator.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.model.map.species;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -22,7 +22,7 @@ public class ProteinComparator extends Comparator<Protein> {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(ProteinComparator.class);
+  private static Logger logger = LogManager.getLogger(ProteinComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/ReceptorProteinComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/species/ReceptorProteinComparator.java
index 36472b445eb589d60753aa417cac1f4edb9cad7b..d00fc3f2bbd725f45a7e82376a4eda583fbe7b6e 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/ReceptorProteinComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/ReceptorProteinComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map.species;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -17,7 +17,7 @@ public class ReceptorProteinComparator extends Comparator<ReceptorProtein> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(ReceptorProteinComparator.class);
+  private static Logger logger = LogManager.getLogger(ReceptorProteinComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/RnaComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/species/RnaComparator.java
index f8ffa614af7e5711ad63cf2e481bdc068ee3fbb5..7c98838f506ac175e1f780df002916777cf99836 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/RnaComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/RnaComparator.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.model.map.species;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -22,7 +22,7 @@ public class RnaComparator extends Comparator<Rna> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(RnaComparator.class);
+  private static Logger logger = LogManager.getLogger(RnaComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/SimpleMoleculeComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/species/SimpleMoleculeComparator.java
index 22c1716164982b425dadd3976ea0f0cecb969e84..8f812206d974962aab00ca928552d46820b6ed75 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/SimpleMoleculeComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/SimpleMoleculeComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map.species;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -17,7 +17,7 @@ public class SimpleMoleculeComparator extends Comparator<SimpleMolecule> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(SimpleMoleculeComparator.class);
+  private static Logger logger = LogManager.getLogger(SimpleMoleculeComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/Species.java b/model/src/main/java/lcsb/mapviewer/model/map/species/Species.java
index 7816f47cc97eeccb9829089eb1a3ad4c93a5b3e8..819aafc0766ab18e3c2f9bdb21018f144fa2efab 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/Species.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/Species.java
@@ -12,7 +12,7 @@ import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
 import javax.persistence.OneToMany;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.hibernate.annotations.Cascade;
 import org.hibernate.annotations.CascadeType;
 
@@ -39,7 +39,7 @@ public abstract class Species extends Element {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(Species.class);
+  private static Logger logger = LogManager.getLogger(Species.class);
 
   /**
    * Is the element active.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/SpeciesComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/species/SpeciesComparator.java
index 54daaec6071f8f46c8f646212ccfabc4ba82b176..539b1d8b9fb85ecc1f30abf4ca50879e5a03a1e3 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/SpeciesComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/SpeciesComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map.species;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -21,7 +21,7 @@ public class SpeciesComparator extends Comparator<Species> {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(SpeciesComparator.class);
+  private Logger logger = LogManager.getLogger(SpeciesComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/TruncatedProteinComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/species/TruncatedProteinComparator.java
index 952e69e4e254bff83f94ce722e95e9fbaec81858..b3c798ecb4d31b208c4c9d4830a82696d48cec54 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/TruncatedProteinComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/TruncatedProteinComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map.species;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -17,7 +17,7 @@ public class TruncatedProteinComparator extends Comparator<TruncatedProtein> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(TruncatedProteinComparator.class);
+  private static Logger logger = LogManager.getLogger(TruncatedProteinComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/UnknownComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/species/UnknownComparator.java
index bbc83d06f9f4cde2755b87e7a5e1052421e189c3..bea3bf142791e156f9d4a2a2b1afb184b2301f6b 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/UnknownComparator.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/UnknownComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.model.map.species;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Comparator;
 import lcsb.mapviewer.common.Configuration;
@@ -17,7 +17,7 @@ public class UnknownComparator extends Comparator<Unknown> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(UnknownComparator.class);
+  private static Logger logger = LogManager.getLogger(UnknownComparator.class);
 
   /**
    * Epsilon value used for comparison of doubles.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/field/BindingRegion.java b/model/src/main/java/lcsb/mapviewer/model/map/species/field/BindingRegion.java
index daa42fe4e3ddd4606d56a1ce00fad124a894af5b..bef43a4b256d61e14aa46c37d5f8c06f7556424d 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/field/BindingRegion.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/field/BindingRegion.java
@@ -5,7 +5,7 @@ import java.io.Serializable;
 import javax.persistence.DiscriminatorValue;
 import javax.persistence.Entity;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 import lcsb.mapviewer.model.map.species.Protein;
@@ -34,7 +34,7 @@ public class BindingRegion extends AbstractRegionModification implements Seriali
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(BindingRegion.class);
+  private static Logger logger = LogManager.getLogger(BindingRegion.class);
 
   /**
    * Default constructor.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/field/CodingRegion.java b/model/src/main/java/lcsb/mapviewer/model/map/species/field/CodingRegion.java
index 4a10b406425a8c4a391a12bc52174c1e704600a2..57368aa9989dbc4b6f21957a9c749180296fd9cf 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/field/CodingRegion.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/field/CodingRegion.java
@@ -5,7 +5,7 @@ import java.io.Serializable;
 import javax.persistence.DiscriminatorValue;
 import javax.persistence.Entity;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 import lcsb.mapviewer.model.map.species.AntisenseRna;
@@ -38,7 +38,7 @@ public class CodingRegion extends AbstractRegionModification implements Serializ
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(CodingRegion.class);
+  private static Logger logger = LogManager.getLogger(CodingRegion.class);
 
   /**
    * Default constructor.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/field/ModificationResidue.java b/model/src/main/java/lcsb/mapviewer/model/map/species/field/ModificationResidue.java
index 4225d31fb3662e6756f63116111eeac72cf1ee23..c40bafa2e25d37f23a40b2fec9b83fd20aa12cf5 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/field/ModificationResidue.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/field/ModificationResidue.java
@@ -17,7 +17,7 @@ import javax.persistence.InheritanceType;
 import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.hibernate.annotations.Type;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
@@ -45,7 +45,7 @@ public abstract class ModificationResidue implements Serializable {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(ModificationResidue.class.getName());
+  private static Logger logger = LogManager.getLogger(ModificationResidue.class.getName());
 
   /**
    * Unique identifier in the database.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/field/ProteinBindingDomain.java b/model/src/main/java/lcsb/mapviewer/model/map/species/field/ProteinBindingDomain.java
index 92d9ea58f22dc937cbac59020022de6a79f51d43..cd1f1f3657fb4b36b89a33ecad0811c9c5f0ceb1 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/field/ProteinBindingDomain.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/field/ProteinBindingDomain.java
@@ -5,7 +5,7 @@ import java.io.Serializable;
 import javax.persistence.DiscriminatorValue;
 import javax.persistence.Entity;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 import lcsb.mapviewer.model.map.species.AntisenseRna;
@@ -36,7 +36,7 @@ public class ProteinBindingDomain extends AbstractRegionModification implements
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(ProteinBindingDomain.class);
+  private static Logger logger = LogManager.getLogger(ProteinBindingDomain.class);
 
   /**
    * Default constructor.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/field/RegulatoryRegion.java b/model/src/main/java/lcsb/mapviewer/model/map/species/field/RegulatoryRegion.java
index fd47c43c8b6eeb0e806de8e8fcbba6be39abca89..b6fcc4ba3fb4e5a50ec785e1fd94ee78f6fb9b07 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/field/RegulatoryRegion.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/field/RegulatoryRegion.java
@@ -5,7 +5,7 @@ import java.io.Serializable;
 import javax.persistence.DiscriminatorValue;
 import javax.persistence.Entity;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 import lcsb.mapviewer.model.map.species.Gene;
@@ -34,7 +34,7 @@ public class RegulatoryRegion extends AbstractRegionModification implements Seri
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(RegulatoryRegion.class);
+  private static Logger logger = LogManager.getLogger(RegulatoryRegion.class);
 
   /**
    * Default constructor.
diff --git a/model/src/main/java/lcsb/mapviewer/model/map/species/field/TranscriptionSite.java b/model/src/main/java/lcsb/mapviewer/model/map/species/field/TranscriptionSite.java
index e878a893d5d2c8efbb0a7221af064282ae113313..bf7b7f3ab143e823fe7dd9b571dc2d0057a10a65 100644
--- a/model/src/main/java/lcsb/mapviewer/model/map/species/field/TranscriptionSite.java
+++ b/model/src/main/java/lcsb/mapviewer/model/map/species/field/TranscriptionSite.java
@@ -5,7 +5,7 @@ import java.io.Serializable;
 import javax.persistence.DiscriminatorValue;
 import javax.persistence.Entity;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.NotImplementedException;
 import lcsb.mapviewer.model.map.species.Gene;
@@ -34,7 +34,7 @@ public class TranscriptionSite extends AbstractRegionModification implements Ser
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(TranscriptionSite.class);
+  private static Logger logger = LogManager.getLogger(TranscriptionSite.class);
 
   private String direction = null;
 
diff --git a/model/src/main/java/lcsb/mapviewer/model/user/UserAnnotationSchema.java b/model/src/main/java/lcsb/mapviewer/model/user/UserAnnotationSchema.java
index 62e7afc494be1f680a61f4c945fc6f31b113a36c..dff4160f252d7bd102899699863043f1a99a5258 100644
--- a/model/src/main/java/lcsb/mapviewer/model/user/UserAnnotationSchema.java
+++ b/model/src/main/java/lcsb/mapviewer/model/user/UserAnnotationSchema.java
@@ -15,7 +15,7 @@ import javax.persistence.OneToMany;
 import javax.persistence.OneToOne;
 import javax.persistence.OrderBy;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.hibernate.annotations.Cascade;
 import org.hibernate.annotations.CascadeType;
 
@@ -43,7 +43,7 @@ public class UserAnnotationSchema implements Serializable {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(UserAnnotationSchema.class);
+  private static Logger logger = LogManager.getLogger(UserAnnotationSchema.class);
 
   /**
    * Unique identifier in the database.
diff --git a/model/src/main/java/lcsb/mapviewer/model/user/UserClassRequiredAnnotations.java b/model/src/main/java/lcsb/mapviewer/model/user/UserClassRequiredAnnotations.java
index 1d24b9ae71f262b07ff84b6671b6b365eb6a665a..65c9eea44344b04c2b1334ccecd975b1109beeba 100644
--- a/model/src/main/java/lcsb/mapviewer/model/user/UserClassRequiredAnnotations.java
+++ b/model/src/main/java/lcsb/mapviewer/model/user/UserClassRequiredAnnotations.java
@@ -18,7 +18,7 @@ import javax.persistence.JoinTable;
 import javax.persistence.ManyToOne;
 import javax.persistence.OrderColumn;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.map.MiriamType;
 
@@ -41,7 +41,7 @@ public class UserClassRequiredAnnotations implements Serializable {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(UserClassRequiredAnnotations.class);
+  private static Logger logger = LogManager.getLogger(UserClassRequiredAnnotations.class);
 
   /**
    * Unique identifier in the database.
diff --git a/model/src/main/java/lcsb/mapviewer/modelutils/map/ElementUtils.java b/model/src/main/java/lcsb/mapviewer/modelutils/map/ElementUtils.java
index 1998162145b42a997aeeb060eeb9832763c8658c..25de87fc35262aada62a9905cd68b9f2ad36ff91 100644
--- a/model/src/main/java/lcsb/mapviewer/modelutils/map/ElementUtils.java
+++ b/model/src/main/java/lcsb/mapviewer/modelutils/map/ElementUtils.java
@@ -8,7 +8,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.reflections.Reflections;
 
 import lcsb.mapviewer.model.map.BioEntity;
@@ -47,7 +47,7 @@ public final class ElementUtils {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(ElementUtils.class);
+  private static Logger logger = LogManager.getLogger(ElementUtils.class);
 
   /**
    * This method return tag that identifies {@link BioEntity}. This tag should be
diff --git a/model/src/test/java/lcsb/mapviewer/ModelTestFunctions.java b/model/src/test/java/lcsb/mapviewer/ModelTestFunctions.java
index fc9832424e2ea7ee356528aa56f8ea48010caad8..544cc8e112f2816806c1be16584113a76699c972 100644
--- a/model/src/test/java/lcsb/mapviewer/ModelTestFunctions.java
+++ b/model/src/test/java/lcsb/mapviewer/ModelTestFunctions.java
@@ -2,30 +2,31 @@ package lcsb.mapviewer;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
-import org.apache.log4j.spi.LoggingEvent;
+import org.apache.logging.log4j.*;
+import org.apache.logging.log4j.core.LogEvent;
+
 import org.junit.After;
 import org.junit.Before;
 
-import lcsb.mapviewer.common.EventStorageLoggerAppender;
+
+import lcsb.mapviewer.common.MinervaLoggerAppender;
 
 public class ModelTestFunctions {
 
-	private EventStorageLoggerAppender appender;
+  private MinervaLoggerAppender appender;
 
 	@Before
 	public final void _setUp() throws Exception {
-		Logger.getRootLogger().removeAppender(appender);
-		appender = new EventStorageLoggerAppender();
-		Logger.getRootLogger().addAppender(appender);
+	    MinervaLoggerAppender.unregisterLogEventStorage(appender);
+		appender = MinervaLoggerAppender.createAppender();
 	}
 
 	@After
 	public final void _tearDown() throws Exception {
-		Logger.getRootLogger().removeAppender(appender);
+	    MinervaLoggerAppender.unregisterLogEventStorage(appender);
 	}
 
-	protected List<LoggingEvent> getWarnings() {
+	protected List<LogEvent> getWarnings() {
 		return appender.getWarnings();
 	}
 
diff --git a/model/src/test/java/lcsb/mapviewer/model/ProjectTest.java b/model/src/test/java/lcsb/mapviewer/model/ProjectTest.java
index 11e903ab2e3af35c68308211574c167c2e10d56f..9332296f1c30c0e7dfbdd2e71d0b6876eaf577b9 100644
--- a/model/src/test/java/lcsb/mapviewer/model/ProjectTest.java
+++ b/model/src/test/java/lcsb/mapviewer/model/ProjectTest.java
@@ -11,14 +11,16 @@ import java.util.List;
 import java.util.Set;
 
 import org.apache.commons.lang3.SerializationUtils;
-import org.apache.log4j.Logger;
-import org.apache.log4j.spi.LoggingEvent;
+import org.apache.logging.log4j.*;
+import org.apache.logging.log4j.core.LogEvent;
+
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
 import lcsb.mapviewer.common.Configuration;
-import lcsb.mapviewer.common.EventStorageLoggerAppender;
+
+import lcsb.mapviewer.common.MinervaLoggerAppender;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.model.cache.UploadedFileEntry;
 import lcsb.mapviewer.model.map.MiriamData;
@@ -27,7 +29,7 @@ import lcsb.mapviewer.model.map.model.ModelData;
 import lcsb.mapviewer.model.map.model.ModelFullIndexed;
 
 public class ProjectTest {
-  Logger logger = Logger.getLogger(ProjectTest.class);
+  Logger logger = LogManager.getLogger(ProjectTest.class);
 
   @Before
   public void setUp() throws Exception {
@@ -250,13 +252,10 @@ public class ProjectTest {
   public void testAddLoggingInfo() {
     try {
       Project project = new Project();
-      EventStorageLoggerAppender appender = new EventStorageLoggerAppender();
-      logger.addAppender(appender);
+      MinervaLoggerAppender appender = MinervaLoggerAppender.createAppender();
       logger.warn("test");
       logger.warn("test2");
-      LoggingEvent event = appender.getWarnings().get(0);
-      appender.getWarnings().add(new LoggingEvent("St", event.getLogger(), null, new Object(), null));
-      logger.removeAppender(appender);
+      MinervaLoggerAppender.unregisterLogEventStorage(appender);
 
       project.addLoggingInfo(appender);
       assertEquals(2, project.getWarnings().size());
diff --git a/model/src/test/java/lcsb/mapviewer/model/graphics/PolylineDataTest.java b/model/src/test/java/lcsb/mapviewer/model/graphics/PolylineDataTest.java
index 14f57c8d638ecb2c795c76ca17e7afbc97bdeec7..606d2b0c7473538ed0f95c81154c3d7a449722ef 100644
--- a/model/src/test/java/lcsb/mapviewer/model/graphics/PolylineDataTest.java
+++ b/model/src/test/java/lcsb/mapviewer/model/graphics/PolylineDataTest.java
@@ -14,7 +14,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.commons.lang3.SerializationUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -25,7 +25,7 @@ import lcsb.mapviewer.common.exception.NotImplementedException;
 import lcsb.mapviewer.common.geometry.PointTransformation;
 
 public class PolylineDataTest {
-  Logger logger = Logger.getLogger(PolylineDataTest.class);
+  Logger logger = LogManager.getLogger(PolylineDataTest.class);
 
   PointTransformation pr = new PointTransformation();
 
diff --git a/model/src/test/java/lcsb/mapviewer/model/map/MiriamTypeTest.java b/model/src/test/java/lcsb/mapviewer/model/map/MiriamTypeTest.java
index 3914805f79a3490e2a45d41382a639f96cf5c8e9..bbb763b3e4920054c4bb2b1e6cbd90587e270780 100644
--- a/model/src/test/java/lcsb/mapviewer/model/map/MiriamTypeTest.java
+++ b/model/src/test/java/lcsb/mapviewer/model/map/MiriamTypeTest.java
@@ -9,7 +9,7 @@ import static org.junit.Assert.fail;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -17,7 +17,7 @@ import org.junit.Test;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 
 public class MiriamTypeTest {
-  Logger logger = Logger.getLogger(MiriamDataTest.class);
+  Logger logger = LogManager.getLogger(MiriamDataTest.class);
 
   @Before
   public void setUp() throws Exception {
diff --git a/model/src/test/java/lcsb/mapviewer/model/map/compartment/CompartmentComparatorTest.java b/model/src/test/java/lcsb/mapviewer/model/map/compartment/CompartmentComparatorTest.java
index 35f4d3ed3f5a523afb07ea423df3be269c979f59..c9b26a97110b78460921bef64658affd8758066c 100644
--- a/model/src/test/java/lcsb/mapviewer/model/map/compartment/CompartmentComparatorTest.java
+++ b/model/src/test/java/lcsb/mapviewer/model/map/compartment/CompartmentComparatorTest.java
@@ -7,7 +7,7 @@ import static org.junit.Assert.fail;
 import java.awt.Color;
 import java.awt.geom.Point2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -18,7 +18,7 @@ import lcsb.mapviewer.model.map.species.Species;
 
 public class CompartmentComparatorTest {
 
-  Logger logger = Logger.getLogger(CompartmentComparatorTest.class);
+  Logger logger = LogManager.getLogger(CompartmentComparatorTest.class);
 
   CompartmentComparator comparator = new CompartmentComparator();
 
diff --git a/model/src/test/java/lcsb/mapviewer/model/map/compartment/CompartmentTest.java b/model/src/test/java/lcsb/mapviewer/model/map/compartment/CompartmentTest.java
index 47229fe19918c2c0e629de233e1c0e335713dd4a..d5482ab3baab98bd67bf99bf3f4e870136233e6a 100644
--- a/model/src/test/java/lcsb/mapviewer/model/map/compartment/CompartmentTest.java
+++ b/model/src/test/java/lcsb/mapviewer/model/map/compartment/CompartmentTest.java
@@ -10,7 +10,7 @@ import java.util.HashSet;
 import java.util.Set;
 
 import org.apache.commons.lang3.SerializationUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -29,7 +29,7 @@ import lcsb.mapviewer.model.map.species.SimpleMolecule;
 import lcsb.mapviewer.model.map.species.Species;
 
 public class CompartmentTest {
-	Logger logger						 = Logger.getLogger(CompartmentTest.class);
+	Logger logger						 = LogManager.getLogger(CompartmentTest.class);
 
 	int		 identifierCounter = 1;
 
diff --git a/model/src/test/java/lcsb/mapviewer/model/map/model/ModelComparatorTest.java b/model/src/test/java/lcsb/mapviewer/model/map/model/ModelComparatorTest.java
index e931941514fdc3a04730c6943f4aea7262173588..3a2cb1c4c4b0583bf0bf7f23b6c3dd20a27007a5 100644
--- a/model/src/test/java/lcsb/mapviewer/model/map/model/ModelComparatorTest.java
+++ b/model/src/test/java/lcsb/mapviewer/model/map/model/ModelComparatorTest.java
@@ -7,7 +7,7 @@ import static org.mockito.Mockito.when;
 
 import java.util.Calendar;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -26,7 +26,7 @@ import lcsb.mapviewer.model.map.species.GenericProtein;
 import lcsb.mapviewer.model.map.species.Species;
 
 public class ModelComparatorTest {
-  Logger logger = Logger.getLogger(ModelComparatorTest.class);
+  Logger logger = LogManager.getLogger(ModelComparatorTest.class);
 
   ModelComparator comparator = new ModelComparator();
 
diff --git a/model/src/test/java/lcsb/mapviewer/model/map/model/ModelFullIndexedTest.java b/model/src/test/java/lcsb/mapviewer/model/map/model/ModelFullIndexedTest.java
index bb36ace8271dc52cdd8960c49262925e374471ae..371d0d385a79c0e71fd85b7891f0b70a1a808534 100644
--- a/model/src/test/java/lcsb/mapviewer/model/map/model/ModelFullIndexedTest.java
+++ b/model/src/test/java/lcsb/mapviewer/model/map/model/ModelFullIndexedTest.java
@@ -12,7 +12,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -37,7 +37,7 @@ import lcsb.mapviewer.model.map.species.GenericProtein;
 import lcsb.mapviewer.model.map.species.Species;
 
 public class ModelFullIndexedTest {
-  Logger logger = Logger.getLogger(ModelFullIndexedTest.class);
+  Logger logger = LogManager.getLogger(ModelFullIndexedTest.class);
 
   @Before
   public void setUp() throws Exception {
diff --git a/model/src/test/java/lcsb/mapviewer/model/map/model/ModelTest.java b/model/src/test/java/lcsb/mapviewer/model/map/model/ModelTest.java
index 2d3078e3dabb80aa22a6b7fc6ac3ce4d12dc2a88..a399e706f8e3d1476cb9a387b40415e49f215896 100644
--- a/model/src/test/java/lcsb/mapviewer/model/map/model/ModelTest.java
+++ b/model/src/test/java/lcsb/mapviewer/model/map/model/ModelTest.java
@@ -9,7 +9,7 @@ import static org.junit.Assert.fail;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -27,7 +27,7 @@ import lcsb.mapviewer.model.map.species.GenericProtein;
 import lcsb.mapviewer.model.map.species.Species;
 
 public class ModelTest {
-	Logger					logger = Logger.getLogger(ModelTest.class);
+	Logger					logger = LogManager.getLogger(ModelTest.class);
 
 	private Species	species;
 
diff --git a/model/src/test/java/lcsb/mapviewer/model/map/reaction/ReactionTest.java b/model/src/test/java/lcsb/mapviewer/model/map/reaction/ReactionTest.java
index e7ebad96304e6a1f62321a85c399c902e3f4d6e1..6106bc40dda41ac783c2fdcffd3dd6648d5af57b 100644
--- a/model/src/test/java/lcsb/mapviewer/model/map/reaction/ReactionTest.java
+++ b/model/src/test/java/lcsb/mapviewer/model/map/reaction/ReactionTest.java
@@ -14,7 +14,7 @@ import java.util.Collections;
 import java.util.List;
 
 import org.apache.commons.lang3.SerializationUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -39,7 +39,7 @@ import lcsb.mapviewer.model.map.species.Species;
 
 public class ReactionTest extends ModelTestFunctions {
 
-  Logger logger = Logger.getLogger(ReactantTest.class);
+  Logger logger = LogManager.getLogger(ReactantTest.class);
 
   private Species species;
 
diff --git a/model/src/test/java/lcsb/mapviewer/model/map/species/ComplexComparatorTest.java b/model/src/test/java/lcsb/mapviewer/model/map/species/ComplexComparatorTest.java
index b7d0182c13d8c33500e8015c927aa5d603e0add0..d673e3d8b7a1a8ba4eb44cdee96f81794bff50ca 100644
--- a/model/src/test/java/lcsb/mapviewer/model/map/species/ComplexComparatorTest.java
+++ b/model/src/test/java/lcsb/mapviewer/model/map/species/ComplexComparatorTest.java
@@ -7,7 +7,7 @@ import static org.mockito.Mockito.when;
 
 import java.awt.Color;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -18,7 +18,7 @@ import lcsb.mapviewer.common.exception.NotImplementedException;
 
 public class ComplexComparatorTest {
 
-  Logger logger = Logger.getLogger(ComplexComparatorTest.class);
+  Logger logger = LogManager.getLogger(ComplexComparatorTest.class);
   ComplexComparator comparator = new ComplexComparator();
 
   @Before
diff --git a/model/src/test/java/lcsb/mapviewer/model/map/species/ProteinComparatorTest.java b/model/src/test/java/lcsb/mapviewer/model/map/species/ProteinComparatorTest.java
index e0cdc967ea40aa88a95d268006c3985bce232c79..2e44d0cfaaa747767d0bca9054c3e8cad113ba53 100644
--- a/model/src/test/java/lcsb/mapviewer/model/map/species/ProteinComparatorTest.java
+++ b/model/src/test/java/lcsb/mapviewer/model/map/species/ProteinComparatorTest.java
@@ -6,7 +6,7 @@ import static org.junit.Assert.fail;
 
 import java.awt.geom.Point2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -17,7 +17,7 @@ import lcsb.mapviewer.model.map.species.field.ModificationState;
 import lcsb.mapviewer.model.map.species.field.Residue;
 
 public class ProteinComparatorTest {
-  Logger logger=  Logger.getLogger(ProteinComparatorTest.class);
+  Logger logger=  LogManager.getLogger(ProteinComparatorTest.class);
 
   ProteinComparator comparator = new ProteinComparator();
 
diff --git a/model/src/test/java/lcsb/mapviewer/model/map/species/RnaTest.java b/model/src/test/java/lcsb/mapviewer/model/map/species/RnaTest.java
index f36d79d0012bfcac3cd7404fed3656ddacf39f28..88cb9f2ce62276c24f4c5b70b792e8d90496ad8a 100644
--- a/model/src/test/java/lcsb/mapviewer/model/map/species/RnaTest.java
+++ b/model/src/test/java/lcsb/mapviewer/model/map/species/RnaTest.java
@@ -8,7 +8,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.commons.lang3.SerializationUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -19,7 +19,7 @@ import lcsb.mapviewer.model.map.species.field.CodingRegion;
 import lcsb.mapviewer.model.map.species.field.ModificationResidue;
 
 public class RnaTest {
-  Logger logger = Logger.getLogger(RnaTest.class);
+  Logger logger = LogManager.getLogger(RnaTest.class);
 
   @Before
   public void setUp() throws Exception {
diff --git a/model/src/test/java/lcsb/mapviewer/modelutils/map/ElementUtilsTest.java b/model/src/test/java/lcsb/mapviewer/modelutils/map/ElementUtilsTest.java
index 30495b30ec6a58ca4f5eb3437253d43ded9dacdf..4a547186bb102e552d954c6e91995ebebbee2e8c 100644
--- a/model/src/test/java/lcsb/mapviewer/modelutils/map/ElementUtilsTest.java
+++ b/model/src/test/java/lcsb/mapviewer/modelutils/map/ElementUtilsTest.java
@@ -11,7 +11,7 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Queue;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -29,7 +29,7 @@ import lcsb.mapviewer.model.map.species.IonChannelProtein;
 import lcsb.mapviewer.model.map.species.Protein;
 
 public class ElementUtilsTest {
-  Logger logger = Logger.getLogger(ElementUtilsTest.class);
+  Logger logger = LogManager.getLogger(ElementUtilsTest.class);
 
   @Before
   public void setUp() throws Exception {
diff --git a/model/src/test/resources/log4j.properties b/model/src/test/resources/log4j.properties
deleted file mode 100644
index 19a3aa0b205013af586b01e8eead31ddcf4926eb..0000000000000000000000000000000000000000
--- a/model/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,44 +0,0 @@
-#Set root logger 's level and its appender to an appender called CONSOLE which is defined below.
-log4j.rootLogger=info, CONSOLE
-
-#Set the behavior of the CONSOLE appender 
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-#log4j.appender.CONSOLE.layout.ConversionPattern=%m%n
-
-
-#Set the behavior of the FILE appender 
-log4j.appender.R=org.apache.log4j.FileAppender
-log4j.appender.R.File=${catalina.home}/logs/MapViewer.log
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-
-
-log4j.logger.org.springframework=warn
-log4j.logger.org.hibernate=warn
-log4j.logger.lcsb=debug
-log4j.logger.lcsb.mapviewer.model.map.species.ElementComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.SpeciesComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.SimpleMoleculeComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.ProteinComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.AssociatedElementComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.ComplexSpeciesComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.AssociatedElementComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.PhenotypeComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.fields.AssociatedElementComparator=info
-
-log4j.logger.lcsb.mapviewer.model.map.layout.alias.SpeciesAliasComparator=info
-log4j.logger.lcsb.mapviewer.model.map.layout.alias.AliasComparator=info
-log4j.logger.lcsb.mapviewer.model.map.layout.alias.ComplexAliasComparator=info
-log4j.logger.lcsb.mapviewer.model.map.layout.alias.CompartmentAliasComparator=info
-
-log4j.logger.lcsb.mapviewer.model.map.reaction.ReactionNodeComparator=info
-log4j.logger.lcsb.mapviewer.model.map.reaction.ReactionComparator=info
-log4j.logger.lcsb.mapviewer.model.map.reaction.NodeOperatorComparator=info
-log4j.logger.lcsb.mapviewer.model.map.reaction.AbstractNodeComparator=info
-
-log4j.logger.lcsb.mapviewer.model.map.model.ModelComparator=info
-
-log4j.logger.lcsb.mapviewer.common.comparator=info
-log4j.logger.lcsb.mapviewer.model.graphics.PolylineDataComparator=info
\ No newline at end of file
diff --git a/model/src/test/resources/log4j2.properties b/model/src/test/resources/log4j2.properties
new file mode 100644
index 0000000000000000000000000000000000000000..b5eaa32682d177bf266eb6ed4831b4e8f4b9135d
--- /dev/null
+++ b/model/src/test/resources/log4j2.properties
@@ -0,0 +1,25 @@
+rootLogger.level = INFO
+appenders = console
+
+appender.console.type = Console
+appender.console.name = STDOUT
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %d %5p [%t] (%F:%L) - %m%n
+
+rootLogger.appenderRefs = console
+
+rootLogger.appenderRef.console.ref = STDOUT
+
+logger.minerva.name = lcsb
+logger.minerva.level = debug
+logger.minerva-persist.name = lcsb.mapviewer.persist.DbUtils
+logger.minerva-persist.level = info
+logger.minerva-cache.name = lcsb.mapviewer.annotation.cache
+logger.minerva-cache.level = info
+
+
+logger.springframework.name = org.springframework
+logger.springframework.level = warn
+
+logger.hibernate.name = org.hibernate
+logger.hibernate.level = warn
diff --git a/pathvisio/pom.xml b/pathvisio/pom.xml
index c15f785067ee82eb80afa06baf551818863ff30c..9eac37f38a086b402840afb81feb6930ebec46ce 100644
--- a/pathvisio/pom.xml
+++ b/pathvisio/pom.xml
@@ -181,10 +181,16 @@
       <version>1.0</version>
     </dependency>
 
+		<!-- Log4J2-->
 		<dependency>
-			<groupId>log4j</groupId>
-			<artifactId>log4j</artifactId>
-			<version>${log4j.version}</version>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-api</artifactId>
+			<version>${log4j2.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-core</artifactId>
+			<version>${log4j2.version}</version>
 		</dependency>
 
     <dependency>
diff --git a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/ImportExport.java b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/ImportExport.java
index 7f1963788f6eac83d5602274e187e5a8395074b9..7320d4af24a893e6228c88b007b2400d72cc8604 100644
--- a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/ImportExport.java
+++ b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/ImportExport.java
@@ -10,9 +10,9 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;
 
-import org.apache.log4j.Logger;
-import org.apache.log4j.PropertyConfigurator;
-import org.apache.log4j.spi.LoggingEvent;
+import org.apache.logging.log4j.*;
+import org.apache.logging.log4j.core.LogEvent;
+import org.apache.logging.log4j.core.LoggerContext;
 import org.pathvisio.core.model.ConverterException;
 import org.pathvisio.core.model.Pathway;
 import org.pathvisio.core.model.PathwayExporter;
@@ -20,7 +20,8 @@ import org.pathvisio.core.model.PathwayImporter;
 import org.pathvisio.desktop.PvDesktop;
 import org.pathvisio.desktop.plugin.Plugin;
 
-import lcsb.mapviewer.common.EventStorageLoggerAppender;
+
+import lcsb.mapviewer.common.MinervaLoggerAppender;
 import lcsb.mapviewer.converter.ConverterParams;
 import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser;
 import lcsb.mapviewer.model.map.model.Model;
@@ -37,7 +38,7 @@ public class ImportExport implements Plugin {
 	/**
 	 * Default class logger.
 	 */
-	private static Logger	 logger						= Logger.getLogger(ImportExport.class);
+	private static Logger	 logger						= LogManager.getLogger(ImportExport.class);
 	/**
 	 * List of extensions supported by import plugin.
 	 */
@@ -50,9 +51,9 @@ public class ImportExport implements Plugin {
 	@Override
 	public void init(PvDesktop desktop) {
 		try {
-			Properties props = new Properties();
-			props.load(new FileInputStream("log4j.properties"));
-			PropertyConfigurator.configure(props);
+		  LoggerContext context = (org.apache.logging.log4j.core.LoggerContext) LogManager.getContext(false);
+		  File file = new File("log4j2.properties");
+		  context.setConfigLocation(file.toURI());
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
@@ -78,7 +79,7 @@ public class ImportExport implements Plugin {
 		/**
 		 * List of warnings that occured during conversion.
 		 */
-		private List<LoggingEvent> warnings = new ArrayList<>();
+		private List<LogEvent> warnings = new ArrayList<>();
 
 		/**
 		 * Default constructor.
@@ -98,9 +99,8 @@ public class ImportExport implements Plugin {
 
 		@Override
 		public Pathway doImport(File file) throws ConverterException {
-			EventStorageLoggerAppender appender = new EventStorageLoggerAppender();
+		  MinervaLoggerAppender appender = MinervaLoggerAppender.createAppender();
 			try {
-				Logger.getRootLogger().addAppender(appender);
 				Pathway pathway = new Pathway();
 				String fileName = file.getPath();
 
@@ -111,14 +111,14 @@ public class ImportExport implements Plugin {
 				Boolean validate = false;
 				pathway.readFromXml(stream, validate);
 
-				Logger.getRootLogger().removeAppender(appender);
+			    MinervaLoggerAppender.unregisterLogEventStorage(appender);
 				warnings.addAll(appender.getWarnings());
 				return pathway;
 			} catch (Exception e) {
 				logger.error(e, e);
 				throw new ConverterException(e);
 			} finally {
-				Logger.getRootLogger().removeAppender(appender);
+				MinervaLoggerAppender.unregisterLogEventStorage(appender);
 			}
 		}
 
@@ -130,10 +130,8 @@ public class ImportExport implements Plugin {
 		@Override
 		public List<String> getWarnings() {
 			List<String> result = new ArrayList<>();
-			for (LoggingEvent event : warnings) {
-				if (event.getMessage() instanceof String) {
-					result.add((String) event.getMessage());
-				}
+			for (LogEvent event : warnings) {
+				result.add(event.getMessage().getFormattedMessage());
 			}
 			return result;
 		}
@@ -175,13 +173,12 @@ public class ImportExport implements Plugin {
 
 		@Override
 		public void doExport(File file, Pathway pathway) throws ConverterException {
-			EventStorageLoggerAppender appender = new EventStorageLoggerAppender();
+		  MinervaLoggerAppender appender = MinervaLoggerAppender.createAppender();
 			try {
-				Logger.getRootLogger().addAppender(appender);
 				pathway.writeToXml(new File("tmp.gpml"), false);
 				model = new GPMLToModel().getModel("tmp.gpml");
 
-				Logger.getRootLogger().removeAppender(appender);
+			    MinervaLoggerAppender.unregisterLogEventStorage(appender);
 				warnings = createWarnings(appender);
 
 				CellDesignerXmlParser parser = new CellDesignerXmlParser();
@@ -195,7 +192,7 @@ public class ImportExport implements Plugin {
 				logger.error(e.getMessage(), e);
 				throw new ConverterException(e);
 			} finally {
-				Logger.getRootLogger().removeAppender(appender);
+				MinervaLoggerAppender.unregisterLogEventStorage(appender);
 			}
 		}
 
@@ -206,14 +203,10 @@ public class ImportExport implements Plugin {
 		 *          appender with the logs
 		 * @return list of warnings from log4j appender data
 		 */
-		private List<String> createWarnings(EventStorageLoggerAppender appender) {
+		private List<String> createWarnings(MinervaLoggerAppender appender) {
 			List<String> warnings = new ArrayList<>();
-			for (LoggingEvent event : appender.getWarnings()) {
-				if (event.getMessage() instanceof String) {
-					warnings.add(((String) event.getMessage()).replaceAll("\n", "_NEW_LINE_"));
-				} else {
-					logger.warn("Unknown message class: " + event.getClass());
-				}
+			for (LogEvent event : appender.getWarnings()) {
+				warnings.add(event.getMessage().getFormattedMessage().replaceAll("\n", "_NEW_LINE_"));
 			}
 			return warnings;
 		}
diff --git a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/BiopaxParser.java b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/BiopaxParser.java
index d892ec7f5dd43ea06fe9b34e39636d6d750ddfc3..877f7cf6d3eef9af383883c843c9adea24856dff 100644
--- a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/BiopaxParser.java
+++ b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/BiopaxParser.java
@@ -7,7 +7,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
@@ -31,7 +31,7 @@ public class BiopaxParser {
 	/**
 	 * Default class logger.
 	 */
-	private static Logger						logger		 = Logger.getLogger(BiopaxParser.class);
+	private static Logger						logger		 = LogManager.getLogger(BiopaxParser.class);
 
 	/**
 	 * Hash used for next {@link BiopaxPublication} processed by parser.
diff --git a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/DataNodeParser.java b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/DataNodeParser.java
index 16a6b3b71793ad2db904a4d359691f1373a27a48..96bb89c3e54caa42dd0f56dfae138eb8cbaafdd8 100644
--- a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/DataNodeParser.java
+++ b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/DataNodeParser.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.wikipathway.XML;
 import java.awt.geom.Rectangle2D;
 import java.util.Collection;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -29,7 +29,7 @@ public class DataNodeParser extends GraphicalPathwayElementParser<DataNode> {
 	/**
 	 * Default claass logger.
 	 */
-	private final Logger					logger					= Logger.getLogger(DataNodeParser.class);
+	private final Logger					logger					= LogManager.getLogger(DataNodeParser.class);
 
 	/**
 	 * PArser used to process references.
diff --git a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/EdgeLineParser.java b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/EdgeLineParser.java
index 92feeb4c0bc16aec9acaa5445e166be15932c399..d848563e2443f5b13f37a5140f5bda77548b2a6b 100644
--- a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/EdgeLineParser.java
+++ b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/EdgeLineParser.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.wikipathway.XML;
 
 import java.util.Collection;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -25,7 +25,7 @@ public class EdgeLineParser extends ElementGpmlParser<Edge> {
 	/**
 	 * Default class logger.
 	 */
-	private final Logger		 logger			= Logger.getLogger(EdgeLineParser.class);
+	private final Logger		 logger			= LogManager.getLogger(EdgeLineParser.class);
 
 	/**
 	 * Parser used to parse typical {@link Edge} xml nodes.
diff --git a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/EdgeParser.java b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/EdgeParser.java
index 5c367ccade930489454a29f81fce8bc9adc6f948..dc083bad422bc9016826ed6454d242fe3949a861 100644
--- a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/EdgeParser.java
+++ b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/EdgeParser.java
@@ -6,7 +6,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -46,7 +46,7 @@ public class EdgeParser extends ElementGpmlParser<Edge> {
 	/**
 	 * Default class logger.
 	 */
-	private final Logger				logger					 = Logger.getLogger(EdgeParser.class);
+	private final Logger				logger					 = LogManager.getLogger(EdgeParser.class);
 
 	/**
 	 * First id value used for generating identifiers during conversion.
diff --git a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ElementGpmlParser.java b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ElementGpmlParser.java
index cad379fcbd1966702d4052439a82bd944cd71b4c..7cde314e7267786f30cad240a04a1c30cfa89ac8 100644
--- a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ElementGpmlParser.java
+++ b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ElementGpmlParser.java
@@ -11,7 +11,7 @@ import lcsb.mapviewer.common.Pair;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.converter.ConverterException;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Element;
 import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
@@ -30,7 +30,7 @@ public abstract class ElementGpmlParser<T> {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final Logger			 logger						= Logger.getLogger(ElementGpmlParser.class);
+	private final Logger			 logger						= LogManager.getLogger(ElementGpmlParser.class);
 
 	/**
 	 * Color that should be used when we have transparent color.
diff --git a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/GpmlParser.java b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/GpmlParser.java
index b19db3ef42d6c7a25daa04921adc7e379f133d2c..671ebacb11aa9aa0ecf29ca5091838d8f6ca943e 100644
--- a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/GpmlParser.java
+++ b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/GpmlParser.java
@@ -14,7 +14,7 @@ import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
@@ -51,7 +51,7 @@ public class GpmlParser {
 	/**
 	 * Default class logger.
 	 */
-	private Logger					logger				 = Logger.getLogger(GpmlParser.class);
+	private Logger					logger				 = LogManager.getLogger(GpmlParser.class);
 
 	/**
 	 * Parser used for creating {@link Shape shapes}.
diff --git a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/GraphicalPathwayElementParser.java b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/GraphicalPathwayElementParser.java
index c868fdc2110f464f776c33cdc6c8d1707e0dac3d..3e6d5c26f50c6784302e8e6422fad8cbfe796369 100644
--- a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/GraphicalPathwayElementParser.java
+++ b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/GraphicalPathwayElementParser.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.wikipathway.XML;
 
 import java.awt.font.TextAttribute;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Pair;
 import lcsb.mapviewer.common.geometry.TextAlignment;
@@ -23,7 +23,7 @@ public abstract class GraphicalPathwayElementParser<T extends GraphicalPathwayEl
 	/**
 	 * Default class logger.
 	 */
-	private final Logger logger = Logger.getLogger(GraphicalPathwayElementParser.class);
+	private final Logger logger = LogManager.getLogger(GraphicalPathwayElementParser.class);
 
 	/**
 	 * Parse font attributes that might appear.
diff --git a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/LabelParser.java b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/LabelParser.java
index c7f3043a93226f5938fc1d18a9d2f8703f2ac403..82af92ce1be0deef2a94a8223d9b14ac053b312d 100644
--- a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/LabelParser.java
+++ b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/LabelParser.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.wikipathway.XML;
 import java.awt.geom.Rectangle2D;
 import java.util.Collection;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -27,7 +27,7 @@ public class LabelParser extends GraphicalPathwayElementParser<Label> {
 	/**
 	 * Default class logger.
 	 */
-	private final Logger logger = Logger.getLogger(LabelParser.class);
+	private final Logger logger = LogManager.getLogger(LabelParser.class);
 
 	@Override
 	public Label parse(Element eElement) throws UnknownTypeException {
diff --git a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ModelContructor.java b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ModelContructor.java
index f9075260c72c0b7b804f71cac056ad34916098d1..029e14fc5a1bf6d531beb0dbce72918a14c3114c 100644
--- a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ModelContructor.java
+++ b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ModelContructor.java
@@ -13,7 +13,7 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.commons.lang3.StringEscapeUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Configuration;
 import lcsb.mapviewer.common.Pair;
@@ -115,7 +115,7 @@ public class ModelContructor {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(ModelContructor.class);
+  private Logger logger = LogManager.getLogger(ModelContructor.class);
 
   /**
    * Parser used for extracting {@link MiriamData references} from GPML model.
diff --git a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ModelToGPML.java b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ModelToGPML.java
index 6634a3e9bdbe7c106557479e024a1ca78ef9551f..0e4ba28f7ec518f29ef6bec92248f382f9aef1ba 100644
--- a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ModelToGPML.java
+++ b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ModelToGPML.java
@@ -5,7 +5,7 @@ import java.awt.geom.Rectangle2D;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.converter.ConverterException;
@@ -48,7 +48,7 @@ public class ModelToGPML {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private final Logger logger = Logger.getLogger(ModelToGPML.class);
+  private final Logger logger = LogManager.getLogger(ModelToGPML.class);
 
   /**
    * Maximum distance between point and line. ???
diff --git a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/PointDataParser.java b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/PointDataParser.java
index 3538d76c4b8998d9e9e8cfe40f21431441c0b9be..1d1e037c73f008beb805aaebde9f7d7fde9837c9 100644
--- a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/PointDataParser.java
+++ b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/PointDataParser.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.wikipathway.XML;
 
 import java.util.Collection;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Element;
 
 import lcsb.mapviewer.common.Pair;
@@ -24,7 +24,7 @@ public class PointDataParser extends ElementGpmlParser<PointData> {
 	/**
 	 * Default class logger.
 	 */
-	private final Logger logger = Logger.getLogger(PointDataParser.class);
+	private final Logger logger = LogManager.getLogger(PointDataParser.class);
 
 	@Override
 	public PointData parse(Element element) throws UnknownTypeException {
diff --git a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ReferenceParser.java b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ReferenceParser.java
index 74ec378fddd07cdf170b1ec92bada2b714336be1..ec6a06d01e962d7e554729bd9138dd6f370ef423 100644
--- a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ReferenceParser.java
+++ b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ReferenceParser.java
@@ -2,12 +2,13 @@ package lcsb.mapviewer.wikipathway.XML;
 
 import java.util.Collection;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
-import lcsb.mapviewer.common.EventStorageLoggerAppender;
+
+import lcsb.mapviewer.common.MinervaLoggerAppender;
 import lcsb.mapviewer.common.Pair;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.common.exception.NotImplementedException;
@@ -29,7 +30,7 @@ public class ReferenceParser extends ElementGpmlParser<MiriamData> {
 	/**
 	 * Default class logger.
 	 */
-	private final Logger logger = Logger.getLogger(ReferenceParser.class);
+	private final Logger logger = LogManager.getLogger(ReferenceParser.class);
 
 	/**
 	 * This function creates MiriamData from database name and id.
@@ -139,15 +140,14 @@ public class ReferenceParser extends ElementGpmlParser<MiriamData> {
 			if (!md.getDataType().equals(MiriamType.PUBMED)) {
 				counter++;
 				if (counter == 1) {
-					EventStorageLoggerAppender appender = new EventStorageLoggerAppender();
+				  MinervaLoggerAppender appender = MinervaLoggerAppender.createAppender();
 					try {
-						Logger.getRootLogger().addAppender(appender);
 						result.append(toXml(md));
 						if (appender.getWarnings().size() > 0) {
 							counter--;
 						}
 					} finally {
-						Logger.getRootLogger().removeAppender(appender);
+						MinervaLoggerAppender.unregisterLogEventStorage(appender);
 					}
 				} else {
 					logger.warn("Annotation ommited - gpml support only one annotation per element: " + md.getDataType() + ": " + md.getResource());
diff --git a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ShapeParser.java b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ShapeParser.java
index 20602560e845e5ee5853419311b3f391f001a218..21aa6c627f9198afda6252187ae401d7a5defa0e 100644
--- a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ShapeParser.java
+++ b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/ShapeParser.java
@@ -4,7 +4,7 @@ import java.awt.font.TextAttribute;
 import java.awt.geom.Rectangle2D;
 import java.util.Collection;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -29,7 +29,7 @@ public class ShapeParser extends GraphicalPathwayElementParser<Shape> {
 	/**
 	 * Default class logger.
 	 */
-	private final Logger logger = Logger.getLogger(ShapeParser.class);
+	private final Logger logger = LogManager.getLogger(ShapeParser.class);
 
 	@Override
 	public Shape parse(Element eElement) throws ConverterException {
diff --git a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/StateParser.java b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/StateParser.java
index 9117268a8ac3180886bf7e7224484ce466bffb66..c31cf5f56b150297ee0470fb0102ce194811b41f 100644
--- a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/StateParser.java
+++ b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/XML/StateParser.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.wikipathway.XML;
 
 import java.util.Collection;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -29,7 +29,7 @@ public class StateParser extends ElementGpmlParser<State> {
 	/**
 	 * Default class logger.
 	 */
-	private final Logger		logger					= Logger.getLogger(StateParser.class);
+	private final Logger		logger					= LogManager.getLogger(StateParser.class);
 
 	/**
 	 * Parser used for extracting {@link lcsb.mapviewer.model.map.MiriamData
diff --git a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/model/Edge.java b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/model/Edge.java
index 82f6247a32122777ad24e7a9fbf3ca1e1f3847d7..062fbb009039ef548ab4bec7d7d5e8527196cbb1 100644
--- a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/model/Edge.java
+++ b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/model/Edge.java
@@ -8,7 +8,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.model.graphics.PolylineData;
@@ -37,7 +37,7 @@ public class Edge implements Serializable {
 	/**
 	 * Default class logger.
 	 */
-	private final transient Logger logger						= Logger.getLogger(Edge.class);
+	private final transient Logger logger						= LogManager.getLogger(Edge.class);
 
 	/**
 	 * Identifier in gpml model.
diff --git a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/model/Graph.java b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/model/Graph.java
index 59ac161bbca8686adc79756709b5b71ab2de642c..e967340cf521ff9aa2f1d94e310b17984cb2d5ae 100644
--- a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/model/Graph.java
+++ b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/model/Graph.java
@@ -10,7 +10,7 @@ import java.util.Map;
 import lcsb.mapviewer.model.graphics.PolylineData;
 import lcsb.mapviewer.wikipathway.model.biopax.BiopaxData;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * This class models nodes and reaction from PathVisio for easy(?) conversion to
@@ -40,7 +40,7 @@ public class Graph implements Serializable {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger							 logger							 = Logger.getLogger(Graph.class);
+	private static Logger							 logger							 = LogManager.getLogger(Graph.class);
 
 	/**
 	 * Height of the model.
diff --git a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/model/PointData.java b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/model/PointData.java
index 824905397e7933f3e83c2a5559482faed5d379ed..c05084ce6cd28d70e93430f95420e35ba1e974fb 100644
--- a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/model/PointData.java
+++ b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/model/PointData.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.wikipathway.model;
 import java.awt.geom.Point2D;
 import java.io.Serializable;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Class that defines infgomration about point stored in gpml structures.
@@ -21,7 +21,7 @@ public class PointData implements Serializable {
 	/**
 	 * Defdault clas logger.
 	 */
-	private final transient Logger logger					 = Logger.getLogger(PointData.class);
+	private final transient Logger logger					 = LogManager.getLogger(PointData.class);
 
 	/**
 	 * X coordinate.
diff --git a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/model/biopax/BiopaxData.java b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/model/biopax/BiopaxData.java
index 64bec374b22b2284dd055ac636a7a47c1502f764..3cd84eb8e5bdc819c73a8b42bd606269d8ccc9a5 100644
--- a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/model/biopax/BiopaxData.java
+++ b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/model/biopax/BiopaxData.java
@@ -9,7 +9,7 @@ import java.util.Map;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Element containg all biopax information parsed from gpml file.
@@ -28,7 +28,7 @@ public class BiopaxData implements Serializable {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final transient Logger							 logger										 = Logger.getLogger(BiopaxData.class);
+	private final transient Logger							 logger										 = LogManager.getLogger(BiopaxData.class);
 
 	/**
 	 * List of {@link BiopaxPublication publications}.
diff --git a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/ComplexReactionToModelTest.java b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/ComplexReactionToModelTest.java
index 7af111468d47235671d1d732c1a51c806b31d728..e3ad0ce78ee96389b4b07f5769eec724fd871356 100644
--- a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/ComplexReactionToModelTest.java
+++ b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/ComplexReactionToModelTest.java
@@ -6,7 +6,7 @@ import static org.junit.Assert.assertTrue;
 
 import java.awt.Color;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 
 import lcsb.mapviewer.model.map.model.Model;
@@ -20,7 +20,7 @@ public class ComplexReactionToModelTest extends WikipathwaysTestFunctions {
   /**
    * Default class logger.
    */
-  static Logger logger = Logger.getLogger(ComplexReactionToModelTest.class);
+  static Logger logger = LogManager.getLogger(ComplexReactionToModelTest.class);
 
   @Test
   public void ComplexReactionTest() throws Exception {
diff --git a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/GPMLToModelTest.java b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/GPMLToModelTest.java
index 32c31e6da8f88a889581c55b17d527d6f78ded72..47d83f98474126a0a5cf1bc954cbdba2c9c5b266 100644
--- a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/GPMLToModelTest.java
+++ b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/GPMLToModelTest.java
@@ -11,7 +11,7 @@ import java.io.File;
 import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Ignore;
 import org.junit.Test;
 
@@ -33,7 +33,7 @@ public class GPMLToModelTest extends WikipathwaysTestFunctions {
   /**
    * Default class logger.
    */
-  static Logger logger = Logger.getLogger(GPMLToModelTest.class);
+  static Logger logger = LogManager.getLogger(GPMLToModelTest.class);
 
   private ModelComparator mc = new ModelComparator(1.0);
 
diff --git a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/ReactionElbowsTest.java b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/ReactionElbowsTest.java
index f19d4987a2956e1d15ca9c6eaf3e20e9e71a7195..05cdc8265a0bfc6c77a384a66544393da77d643c 100644
--- a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/ReactionElbowsTest.java
+++ b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/ReactionElbowsTest.java
@@ -5,7 +5,7 @@ import static org.junit.Assert.assertTrue;
 
 import java.awt.geom.Line2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 
 import lcsb.mapviewer.model.map.model.Model;
@@ -20,7 +20,7 @@ public class ReactionElbowsTest extends WikipathwaysTestFunctions {
   /**
    * Default class logger.
    */
-  static Logger logger = Logger.getLogger(ReactionElbowsTest.class);
+  static Logger logger = LogManager.getLogger(ReactionElbowsTest.class);
 
   private ModelComparator mc = new ModelComparator(1.0);
 
diff --git a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/ReactionGpmlInputToModelTest.java b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/ReactionGpmlInputToModelTest.java
index 0d529b8fbe96a0a0a2946b3489d62872c91f9d1f..d06b396d13c82b91d69bbfde1b9134eb0da83709 100644
--- a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/ReactionGpmlInputToModelTest.java
+++ b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/ReactionGpmlInputToModelTest.java
@@ -5,7 +5,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 
 import lcsb.mapviewer.model.map.model.Model;
@@ -26,7 +26,7 @@ public class ReactionGpmlInputToModelTest extends WikipathwaysTestFunctions {
   /**
    * Default class logger.
    */
-  static Logger logger = Logger.getLogger(ReactionGpmlInputToModelTest.class);
+  static Logger logger = LogManager.getLogger(ReactionGpmlInputToModelTest.class);
 
   private ModelComparator mc = new ModelComparator(1.0);
 
diff --git a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/ReactionGpmlOutputToModelTest.java b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/ReactionGpmlOutputToModelTest.java
index b9b708663ed00e5489f8461f568fe016c8eeac1a..ae5032bab58069a6bcc28f003bc29f7d8d8b36d9 100644
--- a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/ReactionGpmlOutputToModelTest.java
+++ b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/ReactionGpmlOutputToModelTest.java
@@ -5,7 +5,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 
 import lcsb.mapviewer.model.map.model.Model;
@@ -24,7 +24,7 @@ public class ReactionGpmlOutputToModelTest extends WikipathwaysTestFunctions {
   /**
    * Default class logger.
    */
-  static Logger logger = Logger.getLogger(ReactionGpmlOutputToModelTest.class);
+  static Logger logger = LogManager.getLogger(ReactionGpmlOutputToModelTest.class);
 
   private ModelComparator mc = new ModelComparator(1.0);
 
diff --git a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/ReactionGpmlToModelTest.java b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/ReactionGpmlToModelTest.java
index cf21d37c15c14adbe08436d68ffd18b7b9d44d2b..9711e06417187656b1752297a82faeba03c886c1 100644
--- a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/ReactionGpmlToModelTest.java
+++ b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/ReactionGpmlToModelTest.java
@@ -4,7 +4,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 
 import lcsb.mapviewer.model.map.model.Model;
@@ -24,7 +24,7 @@ public class ReactionGpmlToModelTest extends WikipathwaysTestFunctions {
   /**
    * Default class logger.
    */
-  static Logger logger = Logger.getLogger(ReactionGpmlToModelTest.class);
+  static Logger logger = LogManager.getLogger(ReactionGpmlToModelTest.class);
 
   private ModelComparator mc = new ModelComparator(1.0);
 
diff --git a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/WikipathwaysTestFunctions.java b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/WikipathwaysTestFunctions.java
index fb326be303434c33e6846f6df68b28ad48f6e85e..895ef75883d6459d854edad111bf330c8df23340 100644
--- a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/WikipathwaysTestFunctions.java
+++ b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/WikipathwaysTestFunctions.java
@@ -28,8 +28,9 @@ import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 
-import org.apache.log4j.Logger;
-import org.apache.log4j.spi.LoggingEvent;
+import org.apache.logging.log4j.*;
+import org.apache.logging.log4j.core.LogEvent;
+
 import org.junit.After;
 import org.junit.Before;
 import org.w3c.dom.Document;
@@ -40,7 +41,8 @@ import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 
 import lcsb.mapviewer.common.Configuration;
-import lcsb.mapviewer.common.EventStorageLoggerAppender;
+
+import lcsb.mapviewer.common.MinervaLoggerAppender;
 import lcsb.mapviewer.common.exception.InvalidXmlSchemaException;
 import lcsb.mapviewer.converter.ConverterParams;
 import lcsb.mapviewer.converter.InvalidInputDataExecption;
@@ -51,28 +53,27 @@ import lcsb.mapviewer.model.map.InconsistentModelException;
 import lcsb.mapviewer.model.map.model.Model;
 
 public abstract class WikipathwaysTestFunctions {
-  private Logger logger = Logger.getLogger(WikipathwaysTestFunctions.class);
+  private Logger logger = LogManager.getLogger(WikipathwaysTestFunctions.class);
 
   protected static double EPSILON = Configuration.EPSILON;
 
   private DocumentBuilder db;
 
-  private EventStorageLoggerAppender appender;
+  private MinervaLoggerAppender appender;
 
   @Before
   public final void _setUp() throws Exception {
-    Logger.getRootLogger().removeAppender(appender);
-    appender = new EventStorageLoggerAppender();
-    Logger.getRootLogger().addAppender(appender);
+    MinervaLoggerAppender.unregisterLogEventStorage(appender);
+    appender = MinervaLoggerAppender.createAppender();
     db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
   }
 
   @After
   public final void _tearDown() throws Exception {
-    Logger.getRootLogger().removeAppender(appender);
+    MinervaLoggerAppender.unregisterLogEventStorage(appender);
   }
 
-  protected List<LoggingEvent> getWarnings() {
+  protected List<LogEvent> getWarnings() {
     return appender.getWarnings();
   }
 
diff --git a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/XML/BugTest.java b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/XML/BugTest.java
index 81f02a65f9d33c5a2f456d70b3fb65f0cfa0c43b..160443232a3e08103cc17c26ee547fa17935af96 100644
--- a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/XML/BugTest.java
+++ b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/XML/BugTest.java
@@ -4,7 +4,7 @@ import static org.junit.Assert.assertEquals;
 
 import java.io.FileInputStream;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 
 import lcsb.mapviewer.model.map.model.Model;
@@ -14,7 +14,7 @@ import lcsb.mapviewer.model.map.species.Element;
 import lcsb.mapviewer.wikipathway.WikipathwaysTestFunctions;
 
 public class BugTest extends WikipathwaysTestFunctions {
-  Logger logger = Logger.getLogger(BugTest.class);
+  Logger logger = LogManager.getLogger(BugTest.class);
 
   @Test
   public void testBug319() throws Exception {
diff --git a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/XML/DataNodeParserTest.java b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/XML/DataNodeParserTest.java
index ff4a3f911d70b485525cd7a321a0a81a04431d32..b9090662b2a9e8875850317304a732b383885fd2 100644
--- a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/XML/DataNodeParserTest.java
+++ b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/XML/DataNodeParserTest.java
@@ -4,7 +4,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -16,7 +16,7 @@ import lcsb.mapviewer.wikipathway.WikipathwaysTestFunctions;
 import lcsb.mapviewer.wikipathway.model.DataNode;
 
 public class DataNodeParserTest extends WikipathwaysTestFunctions {
-	Logger				 logger	= Logger.getLogger(DataNodeParserTest.class);
+	Logger				 logger	= LogManager.getLogger(DataNodeParserTest.class);
 	DataNodeParser parser	= new DataNodeParser();
 
 	@Before
diff --git a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/XML/GpmlParserTest.java b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/XML/GpmlParserTest.java
index 254110e418fcda024a2ae563843810f2964311ba..0d3f6e03c54eb80b51140d7eb28149c89a627072 100644
--- a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/XML/GpmlParserTest.java
+++ b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/XML/GpmlParserTest.java
@@ -6,7 +6,7 @@ import static org.junit.Assert.assertTrue;
 
 import java.io.FileInputStream;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -17,7 +17,7 @@ import lcsb.mapviewer.wikipathway.model.Graph;
 import lcsb.mapviewer.wikipathway.model.Interaction;
 
 public class GpmlParserTest extends WikipathwaysTestFunctions {
-	Logger logger = Logger.getLogger(GpmlParserTest.class);
+	Logger logger = LogManager.getLogger(GpmlParserTest.class);
 
 	@Before
 	public void setUp() throws Exception {
diff --git a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/XML/ModelContructorTest.java b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/XML/ModelContructorTest.java
index 555d8b58e33fcb2c7aa15386f3967bc422721edf..3306700b7692107abf460099422a3092f2a64a0f 100644
--- a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/XML/ModelContructorTest.java
+++ b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/XML/ModelContructorTest.java
@@ -7,7 +7,7 @@ import java.awt.geom.Point2D;
 import java.io.ByteArrayInputStream;
 import java.nio.charset.StandardCharsets;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -20,7 +20,7 @@ import lcsb.mapviewer.model.map.model.ModelFullIndexed;
 import lcsb.mapviewer.model.map.species.GenericProtein;
 
 public class ModelContructorTest {
-  Logger logger = Logger.getLogger(ModelContructorTest.class);
+  Logger logger = LogManager.getLogger(ModelContructorTest.class);
 
   ModelComparator comparator = new ModelComparator();
 
diff --git a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/XML/ModelToGPMLTest.java b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/XML/ModelToGPMLTest.java
index da4ba111370fedcd91c056d0009a8f7011807c25..638d3086200d255c1ead660e0dc26521f2dd5a76 100644
--- a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/XML/ModelToGPMLTest.java
+++ b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/XML/ModelToGPMLTest.java
@@ -7,7 +7,7 @@ import static org.junit.Assert.assertTrue;
 import java.io.ByteArrayInputStream;
 import java.nio.charset.StandardCharsets;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -23,7 +23,7 @@ import lcsb.mapviewer.model.map.species.GenericProtein;
 import lcsb.mapviewer.wikipathway.WikipathwaysTestFunctions;
 
 public class ModelToGPMLTest extends WikipathwaysTestFunctions {
-	Logger logger = Logger.getLogger(ModelToGPMLTest.class);
+	Logger logger = LogManager.getLogger(ModelToGPMLTest.class);
 
 	@Before
 	public void setUp() throws Exception {
diff --git a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/XML/ReferenceParserTest.java b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/XML/ReferenceParserTest.java
index a3732527026d46bb7774f0c891044b36a7af134a..28ccf7a4454c86d5fa354550d7a7573069e6a02d 100644
--- a/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/XML/ReferenceParserTest.java
+++ b/pathvisio/src/test/java/lcsb/mapviewer/wikipathway/XML/ReferenceParserTest.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.wikipathway.XML;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import lcsb.mapviewer.model.map.MiriamType;
 import lcsb.mapviewer.wikipathway.WikipathwaysTestFunctions;
 
 public class ReferenceParserTest extends WikipathwaysTestFunctions {
-	Logger					logger = Logger.getLogger(ReferenceParserTest.class);
+	Logger					logger = LogManager.getLogger(ReferenceParserTest.class);
 
 	ReferenceParser	mc		 = new ReferenceParser();
 
diff --git a/pathvisio/src/test/resources/log4j.properties b/pathvisio/src/test/resources/log4j.properties
deleted file mode 100644
index f4f85f56c1ad1c869470669bf55d6a83fef76466..0000000000000000000000000000000000000000
--- a/pathvisio/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,45 +0,0 @@
-#Set root logger 's level and its appender to an appender called CONSOLE which is defined below.
-log4j.rootLogger=info, CONSOLE
-
-#Set the behavior of the CONSOLE appender 
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-#log4j.appender.CONSOLE.layout.ConversionPattern=%m%n
-
-
-#Set the behavior of the FILE appender 
-log4j.appender.R=org.apache.log4j.FileAppender
-log4j.appender.R.File=${catalina.home}/logs/MapViewer.log
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-
-
-log4j.logger.org.springframework=warn
-log4j.logger.org.hibernate=warn
-log4j.logger.lcsb=debug
-
-log4j.logger.lcsb.mapviewer.model.map.species.ElementComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.SpeciesComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.SimpleMoleculeComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.ProteinComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.AssociatedElementComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.ComplexSpeciesComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.AssociatedElementComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.PhenotypeComparator=info
-log4j.logger.lcsb.mapviewer.model.map.species.fields.AssociatedElementComparator=info
-
-log4j.logger.lcsb.mapviewer.model.map.layout.alias.SpeciesAliasComparator=info
-log4j.logger.lcsb.mapviewer.model.map.layout.alias.AliasComparator=info
-log4j.logger.lcsb.mapviewer.model.map.layout.alias.ComplexAliasComparator=info
-log4j.logger.lcsb.mapviewer.model.map.layout.alias.CompartmentAliasComparator=info
-
-log4j.logger.lcsb.mapviewer.model.map.reaction.ReactionNodeComparator=info
-log4j.logger.lcsb.mapviewer.model.map.reaction.ReactionComparator=info
-log4j.logger.lcsb.mapviewer.model.map.reaction.NodeOperatorComparator=info
-log4j.logger.lcsb.mapviewer.model.map.reaction.AbstractNodeComparator=info
-
-log4j.logger.lcsb.mapviewer.model.map.model.ModelComparator=info
-
-log4j.logger.lcsb.mapviewer.common.Comparator=info
-log4j.logger.lcsb.mapviewer.model.graphics.PolylineDataComparator=info
\ No newline at end of file
diff --git a/pathvisio/src/test/resources/log4j2.properties b/pathvisio/src/test/resources/log4j2.properties
new file mode 100644
index 0000000000000000000000000000000000000000..b5eaa32682d177bf266eb6ed4831b4e8f4b9135d
--- /dev/null
+++ b/pathvisio/src/test/resources/log4j2.properties
@@ -0,0 +1,25 @@
+rootLogger.level = INFO
+appenders = console
+
+appender.console.type = Console
+appender.console.name = STDOUT
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %d %5p [%t] (%F:%L) - %m%n
+
+rootLogger.appenderRefs = console
+
+rootLogger.appenderRef.console.ref = STDOUT
+
+logger.minerva.name = lcsb
+logger.minerva.level = debug
+logger.minerva-persist.name = lcsb.mapviewer.persist.DbUtils
+logger.minerva-persist.level = info
+logger.minerva-cache.name = lcsb.mapviewer.annotation.cache
+logger.minerva-cache.level = info
+
+
+logger.springframework.name = org.springframework
+logger.springframework.level = warn
+
+logger.hibernate.name = org.hibernate
+logger.hibernate.level = warn
diff --git a/persist/pom.xml b/persist/pom.xml
index f0e6cd91348983c39b1d3690336e0de0ff25776f..4cff11c4c82ea593e4a57808fa53502139ef8703 100644
--- a/persist/pom.xml
+++ b/persist/pom.xml
@@ -79,11 +79,39 @@
 			<version>${xml-apis.version}</version>
 		</dependency>
 
-		<!-- Log4J -->
+		<!-- Log4J2 -->
 		<dependency>
-			<groupId>log4j</groupId>
-			<artifactId>log4j</artifactId>
-			<version>${log4j.version}</version>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-api</artifactId>
+			<version>${log4j2.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-core</artifactId>
+			<version>${log4j2.version}</version>
+		</dependency>
+		<!-- Spring uses commons-logging, so: https://stackoverflow.com/a/41475146/1127920 -->
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-jcl</artifactId>
+			<version>2.11.2</version>
+		</dependency>
+		<!-- Log4J2 -->
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-api</artifactId>
+			<version>${log4j2.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-core</artifactId>
+			<version>${log4j2.version}</version>
+		</dependency>
+		<!-- Spring uses commons-logging, so: https://stackoverflow.com/a/41475146/1127920 -->
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-jcl</artifactId>
+			<version>2.11.2</version>
 		</dependency>
 
 		<!-- Spring -->
diff --git a/persist/src/main/java/lcsb/mapviewer/persist/CustomDatabasePopulator.java b/persist/src/main/java/lcsb/mapviewer/persist/CustomDatabasePopulator.java
index cd431161a43f40d09eaf469c08306d3af6e1386d..74344677b163637c1e835d316d30272fe6c6ba6a 100644
--- a/persist/src/main/java/lcsb/mapviewer/persist/CustomDatabasePopulator.java
+++ b/persist/src/main/java/lcsb/mapviewer/persist/CustomDatabasePopulator.java
@@ -5,7 +5,7 @@ import java.sql.SQLException;
 
 import javax.sql.DataSource;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.flywaydb.core.Flyway;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.datasource.init.DatabasePopulator;
@@ -16,7 +16,7 @@ import org.springframework.stereotype.Service;
 @Service
 public class CustomDatabasePopulator implements DatabasePopulator {
 
-  Logger logger = Logger.getLogger(CustomDatabasePopulator.class);
+  Logger logger = LogManager.getLogger(CustomDatabasePopulator.class);
 
   private ConfigurationHolder config;
 
diff --git a/persist/src/main/java/lcsb/mapviewer/persist/CustomImplicitNamingStrategy.java b/persist/src/main/java/lcsb/mapviewer/persist/CustomImplicitNamingStrategy.java
index 31bcb2caaae9025de0a08452735b17cc96b155d8..145bb4549896f6d1fe2aaba68b76fb72dcf2faeb 100644
--- a/persist/src/main/java/lcsb/mapviewer/persist/CustomImplicitNamingStrategy.java
+++ b/persist/src/main/java/lcsb/mapviewer/persist/CustomImplicitNamingStrategy.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.persist;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.hibernate.boot.model.naming.Identifier;
 import org.hibernate.boot.model.naming.ImplicitEntityNameSource;
 import org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy;
@@ -18,7 +18,7 @@ public class CustomImplicitNamingStrategy extends SpringImplicitNamingStrategy {
    */
   private static final long serialVersionUID = 1L;
 
-  Logger logger = Logger.getLogger(CustomImplicitNamingStrategy.class);
+  Logger logger = LogManager.getLogger(CustomImplicitNamingStrategy.class);
 
   private static final String TABLE_NAME_SUFFIX = "Table";
 
diff --git a/persist/src/main/java/lcsb/mapviewer/persist/DbUtils.java b/persist/src/main/java/lcsb/mapviewer/persist/DbUtils.java
index 6ac53ee658630da86304d224f86dbf92fe1c13f0..fe15ffab38c6b8c8b900ebd2ac50a4e49267a378 100644
--- a/persist/src/main/java/lcsb/mapviewer/persist/DbUtils.java
+++ b/persist/src/main/java/lcsb/mapviewer/persist/DbUtils.java
@@ -5,7 +5,7 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Observable;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.hibernate.SQLQuery;
 import org.hibernate.Session;
 import org.hibernate.SessionFactory;
@@ -37,7 +37,7 @@ public class DbUtils extends Observable {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(DbUtils.class);
+  private static Logger logger = LogManager.getLogger(DbUtils.class);
 
   /**
    * Hibernate session factory.
diff --git a/persist/src/main/java/lcsb/mapviewer/persist/SpringApplicationContext.java b/persist/src/main/java/lcsb/mapviewer/persist/SpringApplicationContext.java
index 4b8aa0a9d2aa169621d6cbd4ad72a2933b12f562..8b87a2a2949a3ea3902aac6f5abca11fbabdf2bc 100644
--- a/persist/src/main/java/lcsb/mapviewer/persist/SpringApplicationContext.java
+++ b/persist/src/main/java/lcsb/mapviewer/persist/SpringApplicationContext.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.persist;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationContextAware;
 import org.springframework.stereotype.Component;
@@ -20,7 +20,7 @@ public class SpringApplicationContext implements ApplicationContextAware {
 	/**
 	 * Default logger for this class.
 	 */
-	private static Logger logger = Logger.getLogger(SpringApplicationContext.class);
+	private static Logger logger = LogManager.getLogger(SpringApplicationContext.class);
 
 	/**
 	 * {@link ApplicationContext} used by the Spring framework.
diff --git a/persist/src/main/java/lcsb/mapviewer/persist/dao/BaseDao.java b/persist/src/main/java/lcsb/mapviewer/persist/dao/BaseDao.java
index dae2101adb8013f6cf32efc5080ae854ca6aca82..3684d2d657f379af9b0b375403f69a3adfb5e168 100644
--- a/persist/src/main/java/lcsb/mapviewer/persist/dao/BaseDao.java
+++ b/persist/src/main/java/lcsb/mapviewer/persist/dao/BaseDao.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.persist.dao;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.hibernate.Query;
 import org.hibernate.Session;
 import org.hibernate.criterion.Projections;
@@ -29,7 +29,7 @@ public abstract class BaseDao<T> {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(BaseDao.class);
+  private static Logger logger = LogManager.getLogger(BaseDao.class);
 
   /**
    * Sometimes objects have a flag that indicate that the object was removed from
diff --git a/persist/src/main/java/lcsb/mapviewer/persist/dao/ProjectDao.java b/persist/src/main/java/lcsb/mapviewer/persist/dao/ProjectDao.java
index d5de4f32a205c798aaf8a37749aef23614b7dfab..abdfd9f4f1cad35ed59bb0dd6f80253adf701289 100644
--- a/persist/src/main/java/lcsb/mapviewer/persist/dao/ProjectDao.java
+++ b/persist/src/main/java/lcsb/mapviewer/persist/dao/ProjectDao.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.persist.dao;
 import java.math.BigInteger;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.hibernate.SQLQuery;
 import org.hibernate.dialect.Dialect;
 
@@ -19,7 +19,7 @@ import org.springframework.stereotype.Repository;
  */
 @Repository
 public class ProjectDao extends BaseDao<Project> {
-  Logger logger = Logger.getLogger(ProjectDao.class);
+  Logger logger = LogManager.getLogger(ProjectDao.class);
 
   /**
    * Default constructor.
diff --git a/persist/src/main/java/lcsb/mapviewer/persist/dao/cache/BigFileEntryDao.java b/persist/src/main/java/lcsb/mapviewer/persist/dao/cache/BigFileEntryDao.java
index 02c84d0f59d2b39226a40fbd832434011b975097..fca6757cfb51ea63f1de3eaffe81a8870dd89f49 100644
--- a/persist/src/main/java/lcsb/mapviewer/persist/dao/cache/BigFileEntryDao.java
+++ b/persist/src/main/java/lcsb/mapviewer/persist/dao/cache/BigFileEntryDao.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.persist.dao.cache;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.cache.BigFileEntry;
 import lcsb.mapviewer.persist.dao.BaseDao;
@@ -20,7 +20,7 @@ public class BigFileEntryDao extends BaseDao<BigFileEntry> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(BigFileEntryDao.class);
+  private Logger logger = LogManager.getLogger(BigFileEntryDao.class);
 
   /**
    * Default constructor.
diff --git a/persist/src/main/java/lcsb/mapviewer/persist/dao/cache/CacheTypeDao.java b/persist/src/main/java/lcsb/mapviewer/persist/dao/cache/CacheTypeDao.java
index c2249450a3f71459387138df7f924f1d95f2d3ec..9f92af8c701ffc7b53833cbe04e7cac07dce8f44 100644
--- a/persist/src/main/java/lcsb/mapviewer/persist/dao/cache/CacheTypeDao.java
+++ b/persist/src/main/java/lcsb/mapviewer/persist/dao/cache/CacheTypeDao.java
@@ -5,7 +5,7 @@ import java.util.List;
 import lcsb.mapviewer.model.cache.CacheType;
 import lcsb.mapviewer.persist.dao.BaseDao;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Repository;
 
 /**
@@ -20,7 +20,7 @@ public class CacheTypeDao extends BaseDao<CacheType> {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private Logger	logger	= Logger.getLogger(CacheTypeDao.class);
+	private Logger	logger	= LogManager.getLogger(CacheTypeDao.class);
 
 	/**
 	 * Default constructor.
diff --git a/persist/src/main/java/lcsb/mapviewer/persist/dao/cache/UploadedFileEntryDao.java b/persist/src/main/java/lcsb/mapviewer/persist/dao/cache/UploadedFileEntryDao.java
index 76415949ffbb1480de60e517768877928a7838bb..897c5a5fc31dea1c1160563991482d5b19ad4b56 100644
--- a/persist/src/main/java/lcsb/mapviewer/persist/dao/cache/UploadedFileEntryDao.java
+++ b/persist/src/main/java/lcsb/mapviewer/persist/dao/cache/UploadedFileEntryDao.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.persist.dao.cache;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.cache.UploadedFileEntry;
 import lcsb.mapviewer.persist.dao.BaseDao;
@@ -18,7 +18,7 @@ public class UploadedFileEntryDao extends BaseDao<UploadedFileEntry> {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private Logger logger = Logger.getLogger(UploadedFileEntryDao.class);
+	private Logger logger = LogManager.getLogger(UploadedFileEntryDao.class);
 
 	/**
 	 * Default constructor.
diff --git a/persist/src/main/java/lcsb/mapviewer/persist/dao/map/CommentDao.java b/persist/src/main/java/lcsb/mapviewer/persist/dao/map/CommentDao.java
index c2b8ba1071315decfff27e86ce8468d44c744495..64535fe2f2e93725537103cef85260e72bcca719 100644
--- a/persist/src/main/java/lcsb/mapviewer/persist/dao/map/CommentDao.java
+++ b/persist/src/main/java/lcsb/mapviewer/persist/dao/map/CommentDao.java
@@ -8,7 +8,7 @@ import lcsb.mapviewer.model.map.model.Model;
 import lcsb.mapviewer.model.map.model.ModelData;
 import lcsb.mapviewer.persist.dao.BaseDao;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Repository;
 
 /**
@@ -23,7 +23,7 @@ public class CommentDao extends BaseDao<Comment> {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger	logger	= Logger.getLogger(CommentDao.class);
+	private static Logger	logger	= LogManager.getLogger(CommentDao.class);
 
 	/**
 	 * Default constructor.
diff --git a/persist/src/main/java/lcsb/mapviewer/persist/dao/map/LayoutDao.java b/persist/src/main/java/lcsb/mapviewer/persist/dao/map/LayoutDao.java
index c754aef096bc03df8511ed6ca5d0ff789d5810c5..4919c1797069bd61071e8bccee7a64ccc96020f4 100644
--- a/persist/src/main/java/lcsb/mapviewer/persist/dao/map/LayoutDao.java
+++ b/persist/src/main/java/lcsb/mapviewer/persist/dao/map/LayoutDao.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.persist.dao.map;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.hibernate.Criteria;
 import org.hibernate.criterion.Projections;
 import org.hibernate.criterion.Restrictions;
@@ -28,7 +28,7 @@ public class LayoutDao extends BaseDao<Layout> {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(LayoutDao.class);
+  private static Logger logger = LogManager.getLogger(LayoutDao.class);
 
   /**
    * Default constructor.
diff --git a/persist/src/main/java/lcsb/mapviewer/persist/dao/map/ModelDao.java b/persist/src/main/java/lcsb/mapviewer/persist/dao/map/ModelDao.java
index ac43776945f0d09a2a6d8389d2c0ab49b3a79bf5..0d027da0fe1620c3ec025308d684c1104f2c0398 100644
--- a/persist/src/main/java/lcsb/mapviewer/persist/dao/map/ModelDao.java
+++ b/persist/src/main/java/lcsb/mapviewer/persist/dao/map/ModelDao.java
@@ -6,7 +6,7 @@ import lcsb.mapviewer.model.map.model.Model;
 import lcsb.mapviewer.model.map.model.ModelData;
 import lcsb.mapviewer.persist.dao.BaseDao;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Repository;
 
 /**
@@ -21,7 +21,7 @@ public class ModelDao extends BaseDao<ModelData> {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger	logger	= Logger.getLogger(ModelDao.class);
+	private static Logger	logger	= LogManager.getLogger(ModelDao.class);
 
 	/**
 	 * Default constructor.
diff --git a/persist/src/main/java/lcsb/mapviewer/persist/dao/map/statistics/SearchHistoryDao.java b/persist/src/main/java/lcsb/mapviewer/persist/dao/map/statistics/SearchHistoryDao.java
index bee80ebbbe0510955c555d75df5b608250b955c8..ccb94767c20ff0ddf5200777d718c86369b1a351 100644
--- a/persist/src/main/java/lcsb/mapviewer/persist/dao/map/statistics/SearchHistoryDao.java
+++ b/persist/src/main/java/lcsb/mapviewer/persist/dao/map/statistics/SearchHistoryDao.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.persist.dao.map.statistics;
 import lcsb.mapviewer.model.map.statistics.SearchHistory;
 import lcsb.mapviewer.persist.dao.BaseDao;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Repository;
 
 /**
@@ -18,7 +18,7 @@ public class SearchHistoryDao extends BaseDao<SearchHistory> {
 	 * Default constructor.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger	logger	= Logger.getLogger(SearchHistoryDao.class);
+	private static Logger	logger	= LogManager.getLogger(SearchHistoryDao.class);
 
 	/**
 	 * Default constructor.
diff --git a/persist/src/test/java/lcsb/mapviewer/persist/ApplicationContextLoaderTest.java b/persist/src/test/java/lcsb/mapviewer/persist/ApplicationContextLoaderTest.java
index ce1d8fb6a69c4903d38912f18742c4ea9a4cadbd..35ac718f7b1b66aee3ff0071ef584b0b3f7e2117 100644
--- a/persist/src/test/java/lcsb/mapviewer/persist/ApplicationContextLoaderTest.java
+++ b/persist/src/test/java/lcsb/mapviewer/persist/ApplicationContextLoaderTest.java
@@ -5,7 +5,7 @@ import static org.junit.Assert.assertNotNull;
 
 import java.lang.reflect.Constructor;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import org.springframework.context.annotation.AnnotationConfigApplicationContext
 import org.springframework.security.crypto.password.PasswordEncoder;
 
 public class ApplicationContextLoaderTest {
-	Logger												 logger	= Logger.getLogger(ApplicationContextLoaderTest.class);
+	Logger												 logger	= LogManager.getLogger(ApplicationContextLoaderTest.class);
 
 	ConfigurableApplicationContext originalContext;
 
diff --git a/persist/src/test/java/lcsb/mapviewer/persist/DbUtilsTest.java b/persist/src/test/java/lcsb/mapviewer/persist/DbUtilsTest.java
index 81747cf064c4a012fed3457ae8c32edbfcfbd39e..8186de6ddc83c06a65107cf7671566e58e59a831 100644
--- a/persist/src/test/java/lcsb/mapviewer/persist/DbUtilsTest.java
+++ b/persist/src/test/java/lcsb/mapviewer/persist/DbUtilsTest.java
@@ -5,13 +5,13 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 
 import lcsb.mapviewer.common.exception.InvalidStateException;
 
 public class DbUtilsTest extends PersistTestFunctions {
-  Logger logger = Logger.getLogger(DbUtilsTest.class);
+  Logger logger = LogManager.getLogger(DbUtilsTest.class);
 
   @Test
   public void testCreateSession() throws Exception {
diff --git a/persist/src/test/java/lcsb/mapviewer/persist/PersistTestFunctions.java b/persist/src/test/java/lcsb/mapviewer/persist/PersistTestFunctions.java
index 524dc354597e436115c0af79bbf78f4316ed4aea..e51ee787da99247153cfdb451dfded011099a174 100644
--- a/persist/src/test/java/lcsb/mapviewer/persist/PersistTestFunctions.java
+++ b/persist/src/test/java/lcsb/mapviewer/persist/PersistTestFunctions.java
@@ -26,7 +26,7 @@ import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.crypto.password.PasswordEncoder;
@@ -70,7 +70,7 @@ import lcsb.mapviewer.persist.dao.user.UserDao;
 @ContextConfiguration(classes = SpringPersistTestConfig.class)
 @RunWith(SpringJUnit4ClassRunner.class)
 public abstract class PersistTestFunctions {
-  private Logger logger = Logger.getLogger(PersistTestFunctions.class);
+  private Logger logger = LogManager.getLogger(PersistTestFunctions.class);
 
   public double EPSILON = 1e-6;
 
diff --git a/persist/src/test/java/lcsb/mapviewer/persist/dao/ProjectDaoTest.java b/persist/src/test/java/lcsb/mapviewer/persist/dao/ProjectDaoTest.java
index 5932a77be706d3443e77fdc00738b7f7ab02421e..d26dc57a6acd756cf772cc1b419a9d362391bebf 100644
--- a/persist/src/test/java/lcsb/mapviewer/persist/dao/ProjectDaoTest.java
+++ b/persist/src/test/java/lcsb/mapviewer/persist/dao/ProjectDaoTest.java
@@ -6,7 +6,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -24,7 +24,7 @@ import lcsb.mapviewer.model.map.species.Species;
 import lcsb.mapviewer.persist.PersistTestFunctions;
 
 public class ProjectDaoTest extends PersistTestFunctions {
-  Logger logger = Logger.getLogger(ProjectDaoTest.class);
+  Logger logger = LogManager.getLogger(ProjectDaoTest.class);
   int identifierCounter = 0;
   String projectId = "Some_id";
 
diff --git a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/LayoutDaoTest.java b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/LayoutDaoTest.java
index b5ef2da1d92622080d39538512f19218be02795f..fda21091584355f43c3cbcd6e412b7ec4d9017ae 100644
--- a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/LayoutDaoTest.java
+++ b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/LayoutDaoTest.java
@@ -6,7 +6,7 @@ import static org.junit.Assert.assertNull;
 
 import java.nio.charset.StandardCharsets;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -37,7 +37,7 @@ public class LayoutDaoTest extends PersistTestFunctions {
   @Autowired
   private LayoutDao layoutDao;
 
-  final static Logger logger = Logger.getLogger(LayoutDaoTest.class);
+  final static Logger logger = LogManager.getLogger(LayoutDaoTest.class);
 
   @Before
   public void setUp() throws Exception {
diff --git a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/ModelDaoTest.java b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/ModelDaoTest.java
index ef22436b5fe44e8e57b1c68ebe0a4af32a2955d1..60a7fd09277216feeac8f4926f235b7e524a5d18 100644
--- a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/ModelDaoTest.java
+++ b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/ModelDaoTest.java
@@ -8,7 +8,7 @@ import static org.junit.Assert.assertTrue;
 
 import java.awt.geom.Point2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -45,7 +45,7 @@ import lcsb.mapviewer.persist.PersistTestFunctions;
 public class ModelDaoTest extends PersistTestFunctions {
   ModelComparator modelComparator = new ModelComparator();
 
-  Logger logger = Logger.getLogger(ModelDaoTest.class);
+  Logger logger = LogManager.getLogger(ModelDaoTest.class);
   private Project project;
   String projectId = "Some_id";
   int identifierCounter = 0;
diff --git a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/AliasDaoTest.java b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/AliasDaoTest.java
index 33d7412d58a60271edf2a9a3ea153c4cb3986d8d..b7f69164ff880c4c08b1ac19dce3418c1055c0e3 100644
--- a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/AliasDaoTest.java
+++ b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/AliasDaoTest.java
@@ -5,7 +5,7 @@ import static org.junit.Assert.assertEquals;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -24,7 +24,7 @@ import lcsb.mapviewer.model.map.species.field.UniprotRecord;
 import lcsb.mapviewer.persist.PersistTestFunctions;
 
 public class AliasDaoTest extends PersistTestFunctions {
-  Logger logger = Logger.getLogger(AliasDaoTest.class);
+  Logger logger = LogManager.getLogger(AliasDaoTest.class);
 
   private Project project;
   String projectId = "Some_id";
diff --git a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/AliasDaoTest2.java b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/AliasDaoTest2.java
index c548eba2fdadc446ca5d54eeaa494cc225277699..828210c90952790416e0d6df6b13f7a703a66a01 100644
--- a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/AliasDaoTest2.java
+++ b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/AliasDaoTest2.java
@@ -6,7 +6,7 @@ import static org.junit.Assert.assertNull;
 
 import java.awt.geom.Point2D;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -29,7 +29,7 @@ import lcsb.mapviewer.model.map.species.field.Residue;
 import lcsb.mapviewer.persist.PersistTestFunctions;
 
 public class AliasDaoTest2 extends PersistTestFunctions {
-  static Logger logger = Logger.getLogger(AliasDaoTest.class);
+  static Logger logger = LogManager.getLogger(AliasDaoTest.class);
 
   private Integer testChargeVal = 1;
   private String testIdAlias = "a";
diff --git a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/AntisenseRnaTest.java b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/AntisenseRnaTest.java
index 3199ca948cc089fb7bf5274444e8ccd7d706de91..f0096217721090f9e438569c0a7635c61e7e723c 100644
--- a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/AntisenseRnaTest.java
+++ b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/AntisenseRnaTest.java
@@ -4,7 +4,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -20,7 +20,7 @@ import lcsb.mapviewer.persist.PersistTestFunctions;
 
 @Rollback(true)
 public class AntisenseRnaTest extends PersistTestFunctions {
-  Logger logger = Logger.getLogger(AntisenseRnaTest.class);
+  Logger logger = LogManager.getLogger(AntisenseRnaTest.class);
 
   int identifierCounter = 0;
   String projectId = "Some_id";
diff --git a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/RnaTest.java b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/RnaTest.java
index 893b43ef12ffcfd3c28965d7195f02f85a499d8b..1b7fe00af08253541dc248baec58969df26d998a 100644
--- a/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/RnaTest.java
+++ b/persist/src/test/java/lcsb/mapviewer/persist/dao/map/layout/alias/RnaTest.java
@@ -4,7 +4,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -18,7 +18,7 @@ import lcsb.mapviewer.model.map.species.field.CodingRegion;
 import lcsb.mapviewer.persist.PersistTestFunctions;
 
 public class RnaTest extends PersistTestFunctions {
-  Logger logger = Logger.getLogger(RnaTest.class);
+  Logger logger = LogManager.getLogger(RnaTest.class);
 
   int identifierCounter = 0;
 
diff --git a/persist/src/test/java/lcsb/mapviewer/persist/dao/user/UserDaoTest.java b/persist/src/test/java/lcsb/mapviewer/persist/dao/user/UserDaoTest.java
index 9d0c4a9f64f4d989461bfe72b931f63624268a46..fabaf9d4d4c133fb64d654b40d2db1c356c51a0d 100644
--- a/persist/src/test/java/lcsb/mapviewer/persist/dao/user/UserDaoTest.java
+++ b/persist/src/test/java/lcsb/mapviewer/persist/dao/user/UserDaoTest.java
@@ -9,7 +9,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -37,7 +37,7 @@ public class UserDaoTest extends PersistTestFunctions {
   @Autowired
   protected PasswordEncoder passwordEncoder;
 
-  protected Logger logger = Logger.getLogger(UserDaoTest.class.getName());
+  protected Logger logger = LogManager.getLogger(UserDaoTest.class.getName());
   String testLogin = "test_login123";
   String testEmail = "a@a.pl";
   String testPasswd = "pwd";
diff --git a/persist/src/test/java/lcsb/mapviewer/persist/mapper/ArrowTypeDataMapperTest.java b/persist/src/test/java/lcsb/mapviewer/persist/mapper/ArrowTypeDataMapperTest.java
index c41ece50f9179c02ca097674322620503ae7b3e9..8c9b78c29bb3ee1b29091bfd8e2597eb70a49046 100644
--- a/persist/src/test/java/lcsb/mapviewer/persist/mapper/ArrowTypeDataMapperTest.java
+++ b/persist/src/test/java/lcsb/mapviewer/persist/mapper/ArrowTypeDataMapperTest.java
@@ -5,7 +5,7 @@ import static org.junit.Assert.assertTrue;
 
 import java.io.Serializable;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import lcsb.mapviewer.model.graphics.ArrowTypeData;
 import lcsb.mapviewer.model.graphics.LineType;
 
 public class ArrowTypeDataMapperTest {
-  Logger logger = Logger.getLogger(ArrowTypeDataMapperTest.class);
+  Logger logger = LogManager.getLogger(ArrowTypeDataMapperTest.class);
 
   ArrowTypeDataMapper mapper = new ArrowTypeDataMapper();
 
diff --git a/persist/src/test/resources/log4j.properties b/persist/src/test/resources/log4j.properties
deleted file mode 100644
index 055d98980b4e018a2e889adcf505703be62756c9..0000000000000000000000000000000000000000
--- a/persist/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-#Set root logger 's level and its appender to an appender called CONSOLE which is defined below.
-log4j.rootLogger=info, CONSOLE
-
-#Set the behavior of the CONSOLE appender 
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-#log4j.appender.CONSOLE.layout.ConversionPattern=%m%n
-
-
-#Set the behavior of the FILE appender 
-log4j.appender.R=org.apache.log4j.FileAppender
-log4j.appender.R.File=${catalina.home}/logs/MapViewer.log
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-
-
-log4j.logger.org.springframework=warn
-log4j.logger.org.hibernate=warn
-log4j.logger.lcsb=debug
diff --git a/persist/src/test/resources/log4j2.properties b/persist/src/test/resources/log4j2.properties
new file mode 100644
index 0000000000000000000000000000000000000000..b5eaa32682d177bf266eb6ed4831b4e8f4b9135d
--- /dev/null
+++ b/persist/src/test/resources/log4j2.properties
@@ -0,0 +1,25 @@
+rootLogger.level = INFO
+appenders = console
+
+appender.console.type = Console
+appender.console.name = STDOUT
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %d %5p [%t] (%F:%L) - %m%n
+
+rootLogger.appenderRefs = console
+
+rootLogger.appenderRef.console.ref = STDOUT
+
+logger.minerva.name = lcsb
+logger.minerva.level = debug
+logger.minerva-persist.name = lcsb.mapviewer.persist.DbUtils
+logger.minerva-persist.level = info
+logger.minerva-cache.name = lcsb.mapviewer.annotation.cache
+logger.minerva-cache.level = info
+
+
+logger.springframework.name = org.springframework
+logger.springframework.level = warn
+
+logger.hibernate.name = org.hibernate
+logger.hibernate.level = warn
diff --git a/pom.xml b/pom.xml
index a0952e6f10554272c463864cdc3bb3cc841f35c8..6d93399883dcef882e549b4ac04de2c253a36340 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,7 +14,6 @@
 	<properties>
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 
-		<log4j.version>1.2.17</log4j.version>
 		<log4j2.version>2.11.2</log4j2.version>
 
 		<xercesImp.version>2.12.0</xercesImp.version>
diff --git a/quadTrees/pom.xml b/quadTrees/pom.xml
index eb40252bcccb1f687b8ce36fa77f43c2ca63ea2a..ffcdd6afa0ca78afeba6bf2e92791952eaa80186 100644
--- a/quadTrees/pom.xml
+++ b/quadTrees/pom.xml
@@ -9,10 +9,16 @@
   <name>Quad Trees implementation</name>
 
 	<dependencies>
+		<!-- Log4J2-->
 		<dependency>
-			<groupId>log4j</groupId>
-			<artifactId>log4j</artifactId>
-			<version>${log4j.version}</version>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-api</artifactId>
+			<version>${log4j2.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-core</artifactId>
+			<version>${log4j2.version}</version>
 		</dependency>
 
 		<dependency>
diff --git a/quadTrees/src/main/java/lcsb/mapviewer/utils/quadtree/geometry/MyRectangle.java b/quadTrees/src/main/java/lcsb/mapviewer/utils/quadtree/geometry/MyRectangle.java
index 9641996ffd5075899c25bae5f17f10c79dd5595e..b4a7e21e2096021c172683bef0bbd8303b270cc7 100644
--- a/quadTrees/src/main/java/lcsb/mapviewer/utils/quadtree/geometry/MyRectangle.java
+++ b/quadTrees/src/main/java/lcsb/mapviewer/utils/quadtree/geometry/MyRectangle.java
@@ -7,7 +7,7 @@ import lcsb.mapviewer.utils.quadtree.containers.Edge;
 import lcsb.mapviewer.utils.quadtree.containers.MyShape;
 import lcsb.mapviewer.utils.quadtree.containers.MySquare;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Extends Rectangle.
@@ -22,7 +22,7 @@ public class MyRectangle extends Rectangle {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger	logger	= Logger.getLogger(MyRectangle.class);
+	private static Logger	logger	= LogManager.getLogger(MyRectangle.class);
 
 	/**
 	 * 
diff --git a/quadTrees/src/main/java/lcsb/mapviewer/utils/quadtree/quadtrees/AreaQuadTree.java b/quadTrees/src/main/java/lcsb/mapviewer/utils/quadtree/quadtrees/AreaQuadTree.java
index 2f42eda43588f3c0158018c991f482ae3bcdc88b..3ef8833339a0d9fc57a1f5bc11604e0f0bcce3c5 100644
--- a/quadTrees/src/main/java/lcsb/mapviewer/utils/quadtree/quadtrees/AreaQuadTree.java
+++ b/quadTrees/src/main/java/lcsb/mapviewer/utils/quadtree/quadtrees/AreaQuadTree.java
@@ -12,14 +12,14 @@ import lcsb.mapviewer.utils.quadtree.vertexes.Kompozycja;
 import lcsb.mapviewer.utils.quadtree.vertexes.OrangeVertex;
 import lcsb.mapviewer.utils.quadtree.vertexes.VertexWithShapes;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 public class AreaQuadTree extends SegmentQuadTree {
 	/**
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger		logger	= Logger.getLogger(PointQuadTree.class);
+	private static Logger		logger	= LogManager.getLogger(PointQuadTree.class);
 
 	protected List<MyShape>	listOfRectangles;
 
diff --git a/quadTrees/src/main/java/lcsb/mapviewer/utils/quadtree/quadtrees/PointQuadTree.java b/quadTrees/src/main/java/lcsb/mapviewer/utils/quadtree/quadtrees/PointQuadTree.java
index a1d75c5ea6ca81228326bf8344b68be9105f721b..4f90c95eb1ddf3b9fad12dd5c00fd26d6dfa451d 100644
--- a/quadTrees/src/main/java/lcsb/mapviewer/utils/quadtree/quadtrees/PointQuadTree.java
+++ b/quadTrees/src/main/java/lcsb/mapviewer/utils/quadtree/quadtrees/PointQuadTree.java
@@ -17,7 +17,7 @@ import lcsb.mapviewer.utils.quadtree.vertexes.Kompozycja;
 import lcsb.mapviewer.utils.quadtree.vertexes.OrangeVertex;
 import lcsb.mapviewer.utils.quadtree.vertexes.WhiteVertex;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * PointQuadTree that provides adding and removing locations from map.
@@ -32,7 +32,7 @@ public class PointQuadTree {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger				logger						= Logger.getLogger(PointQuadTree.class);
+	private static Logger				logger						= LogManager.getLogger(PointQuadTree.class);
 
 	protected Kompozycja				root;
 	protected List<MyLocation>	myLocations;
diff --git a/quadTrees/src/main/java/lcsb/mapviewer/utils/quadtree/quadtrees/SegmentQuadTree.java b/quadTrees/src/main/java/lcsb/mapviewer/utils/quadtree/quadtrees/SegmentQuadTree.java
index 16fe58b81ca42f752654227587e9068f9903782c..d05f97ac7f14fd2fe0a286579fcab16f64cf1bea 100644
--- a/quadTrees/src/main/java/lcsb/mapviewer/utils/quadtree/quadtrees/SegmentQuadTree.java
+++ b/quadTrees/src/main/java/lcsb/mapviewer/utils/quadtree/quadtrees/SegmentQuadTree.java
@@ -20,7 +20,7 @@ import lcsb.mapviewer.utils.quadtree.vertexes.OrangeVertex;
 import lcsb.mapviewer.utils.quadtree.vertexes.VertexWithShapes;
 import lcsb.mapviewer.utils.quadtree.vertexes.WhiteVertex;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Extends PointQuadTree.
@@ -34,7 +34,7 @@ public class SegmentQuadTree extends PointQuadTree {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger				logger	= Logger.getLogger(SegmentQuadTree.class);
+	private static Logger				logger	= LogManager.getLogger(SegmentQuadTree.class);
 
 	protected List<MyPolyline>	myPolylines;
 
diff --git a/quadTrees/src/main/java/lcsb/mapviewer/utils/quadtree/testquadtrees/ReactionsQuadTree.java b/quadTrees/src/main/java/lcsb/mapviewer/utils/quadtree/testquadtrees/ReactionsQuadTree.java
index 60d81016a5f7619b8735ce6a9c986ea59e4075bc..6bb29c427e9102ada6f0853eaaed9e080fd409d6 100644
--- a/quadTrees/src/main/java/lcsb/mapviewer/utils/quadtree/testquadtrees/ReactionsQuadTree.java
+++ b/quadTrees/src/main/java/lcsb/mapviewer/utils/quadtree/testquadtrees/ReactionsQuadTree.java
@@ -14,18 +14,15 @@ import lcsb.mapviewer.utils.quadtree.containers.MyPolyline;
 import lcsb.mapviewer.utils.quadtree.quadtrees.SegmentQuadTree;
 import lcsb.mapviewer.utils.quadtree.testquadtrees.baskets.ReactionBasket;
 
-import org.apache.log4j.Logger;
-import org.apache.log4j.PropertyConfigurator;
+import org.apache.logging.log4j.*;
+
 
 public class ReactionsQuadTree extends SegmentQuadTree {
 	/**
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger					logger	= Logger.getLogger(SegmentQuadTree.class);
-	static {
-		PropertyConfigurator.configure("src/main/webapp/WEB-INF/resources/log4j.properties");
-	}
+	private static Logger					logger	= LogManager.getLogger(SegmentQuadTree.class);
 
 	private List<ReactionBasket>	listOfReactions;
 
diff --git a/quadTrees/src/test/java/lcsb/mapviewer/utils/quadtree/quadtrees/AreaQuadTreeTest.java b/quadTrees/src/test/java/lcsb/mapviewer/utils/quadtree/quadtrees/AreaQuadTreeTest.java
index 0265a3dbebe204059b60b5c0d865cbb3a8d4ca86..bf9398335959e79aefefbcaab8c297a69e83bc52 100644
--- a/quadTrees/src/test/java/lcsb/mapviewer/utils/quadtree/quadtrees/AreaQuadTreeTest.java
+++ b/quadTrees/src/test/java/lcsb/mapviewer/utils/quadtree/quadtrees/AreaQuadTreeTest.java
@@ -7,11 +7,11 @@ import java.awt.Point;
 import lcsb.mapviewer.utils.quadtree.containers.MySquare;
 import lcsb.mapviewer.utils.quadtree.geometry.MyLocation;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 
 public class AreaQuadTreeTest {
-	Logger	logger	= Logger.getLogger(AreaQuadTreeTest.class);
+	Logger	logger	= LogManager.getLogger(AreaQuadTreeTest.class);
 
 	@Test
 	public void test() {
diff --git a/quadTrees/src/test/java/lcsb/mapviewer/utils/quadtree/quadtrees/PointQuadTreeTest.java b/quadTrees/src/test/java/lcsb/mapviewer/utils/quadtree/quadtrees/PointQuadTreeTest.java
index fe9d1c81f4963b6fff875367bf90781cf9940897..057561b6f1548b80913bf410b30591c122d71a73 100644
--- a/quadTrees/src/test/java/lcsb/mapviewer/utils/quadtree/quadtrees/PointQuadTreeTest.java
+++ b/quadTrees/src/test/java/lcsb/mapviewer/utils/quadtree/quadtrees/PointQuadTreeTest.java
@@ -6,11 +6,11 @@ import java.awt.Point;
 
 import lcsb.mapviewer.utils.quadtree.geometry.MyLocation;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 
 public class PointQuadTreeTest  {
-	Logger	logger	= Logger.getLogger(PointQuadTreeTest.class);
+	Logger	logger	= LogManager.getLogger(PointQuadTreeTest.class);
 
 	@Test
 	public void test1() {
diff --git a/quadTrees/src/test/java/lcsb/mapviewer/utils/quadtree/quadtrees/SegmentQuadTreeTest.java b/quadTrees/src/test/java/lcsb/mapviewer/utils/quadtree/quadtrees/SegmentQuadTreeTest.java
index 5bcedcaddb0801b1901bab1ec4e992c2eddedd9c..6292e67a76935d428123701dce3eca8714b380f9 100644
--- a/quadTrees/src/test/java/lcsb/mapviewer/utils/quadtree/quadtrees/SegmentQuadTreeTest.java
+++ b/quadTrees/src/test/java/lcsb/mapviewer/utils/quadtree/quadtrees/SegmentQuadTreeTest.java
@@ -7,11 +7,11 @@ import java.awt.Point;
 import lcsb.mapviewer.utils.quadtree.containers.Edge;
 import lcsb.mapviewer.utils.quadtree.containers.MyPolyline;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 
 public class SegmentQuadTreeTest  {
-	Logger	logger	= Logger.getLogger(SegmentQuadTreeTest.class);
+	Logger	logger	= LogManager.getLogger(SegmentQuadTreeTest.class);
 
 	@Test
 	public void test1() {
diff --git a/quadTrees/src/test/resources/log4j.properties b/quadTrees/src/test/resources/log4j.properties
deleted file mode 100644
index d9762865981dac9ac1ba5a67054ab262b021d9f7..0000000000000000000000000000000000000000
--- a/quadTrees/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-#Set root logger 's level and its appender to an appender called CONSOLE which is defined below.
-log4j.rootLogger=info, CONSOLE, R
-
-#Set the behavior of the CONSOLE appender 
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-#log4j.appender.CONSOLE.layout.ConversionPattern=%m%n
-
-
-#Set the behavior of the FILE appender 
-log4j.appender.R=org.apache.log4j.FileAppender
-log4j.appender.R.File=${catalina.home}/logs/MapViewer.log
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-
-
-log4j.logger.org.springframework=warn
-log4j.logger.org.hibernate=warn
-log4j.logger.lcsb=debug
diff --git a/quadTrees/src/test/resources/log4j2.properties b/quadTrees/src/test/resources/log4j2.properties
new file mode 100644
index 0000000000000000000000000000000000000000..b5eaa32682d177bf266eb6ed4831b4e8f4b9135d
--- /dev/null
+++ b/quadTrees/src/test/resources/log4j2.properties
@@ -0,0 +1,25 @@
+rootLogger.level = INFO
+appenders = console
+
+appender.console.type = Console
+appender.console.name = STDOUT
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %d %5p [%t] (%F:%L) - %m%n
+
+rootLogger.appenderRefs = console
+
+rootLogger.appenderRef.console.ref = STDOUT
+
+logger.minerva.name = lcsb
+logger.minerva.level = debug
+logger.minerva-persist.name = lcsb.mapviewer.persist.DbUtils
+logger.minerva-persist.level = info
+logger.minerva-cache.name = lcsb.mapviewer.annotation.cache
+logger.minerva-cache.level = info
+
+
+logger.springframework.name = org.springframework
+logger.springframework.level = warn
+
+logger.hibernate.name = org.hibernate
+logger.hibernate.level = warn
diff --git a/reactome/pom.xml b/reactome/pom.xml
index bd9bc710dae86505babe19ee3740865db11e6aeb..1fed4873c62ea45380ed271343446afb714a8e74 100644
--- a/reactome/pom.xml
+++ b/reactome/pom.xml
@@ -44,11 +44,16 @@
 			<version>1.0</version>
 		</dependency>
 
-		<!-- Log4J -->
+		<!-- Log4J2-->
 		<dependency>
-			<groupId>log4j</groupId>
-			<artifactId>log4j</artifactId>
-			<version>${log4j.version}</version>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-api</artifactId>
+			<version>${log4j2.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-core</artifactId>
+			<version>${log4j2.version}</version>
 		</dependency>
 
 		<!-- Spring -->
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/ReactomeDatabaseProxy.java b/reactome/src/main/java/lcsb/mapviewer/reactome/ReactomeDatabaseProxy.java
index bed1ca5f86f3b72f63598a45f09e1b3bf0947428..0482ae77a2e73692c3d252a04bc5cee5477d295d 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/ReactomeDatabaseProxy.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/ReactomeDatabaseProxy.java
@@ -14,7 +14,7 @@ import lcsb.mapviewer.reactome.model.ReactomeDatabaseObject;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 import lcsb.mapviewer.reactome.utils.DataSourceUpdater;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -31,7 +31,7 @@ public class ReactomeDatabaseProxy {
 	/**
 	 * Default class logger.
 	 */
-	private static Logger			logger	= Logger.getLogger(ReactomeDatabaseProxy.class);
+	private static Logger			logger	= LogManager.getLogger(ReactomeDatabaseProxy.class);
 
 	/**
 	 * Interface used for accessing data in the reactome database.
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/DataFormatter.java b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/DataFormatter.java
index b2dce25f982102befbefffa182702eb684c737ea..e6f30afd8d6d0e7fb8a85c6123ae9aec720c7496 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/DataFormatter.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/DataFormatter.java
@@ -4,7 +4,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import lcsb.mapviewer.annotation.services.MiriamConnector;
@@ -31,7 +31,7 @@ public class DataFormatter {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger			logger = Logger.getLogger(DataFormatter.class);
+	private static Logger			logger = LogManager.getLogger(DataFormatter.class);
 
 	/**
 	 * Connector used for accessing data from miriam registry.
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/ReactionComparator.java b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/ReactionComparator.java
index 93094fe11dc80a392c180e82f0d255913ddf9daa..580a5594455a6bc5404876331c824b50d417954c 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/ReactionComparator.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/ReactionComparator.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.reactome.utils;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -34,7 +34,7 @@ public class ReactionComparator {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger	 logger	= Logger.getLogger(ReactionComparator.class);
+	private static Logger	 logger	= LogManager.getLogger(ReactionComparator.class);
 
 	/**
 	 * Comparator that allows to compare nodes in our format with nodes in
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/ReactomeConnector.java b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/ReactomeConnector.java
index 0b4304a7fd86aafe051e23aa96016239185580bb..26ef9de54309915f1c7085c902c43526c67fcdc1 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/ReactomeConnector.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/ReactomeConnector.java
@@ -17,7 +17,7 @@ import java.util.Set;
 
 import lcsb.mapviewer.common.XmlParser;
 import org.apache.commons.io.IOUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.w3c.dom.Document;
@@ -135,7 +135,7 @@ public class ReactomeConnector extends CachableInterface implements DataSourceUp
 	/**
 	 * Default class logger.
 	 */
-	private static Logger												 logger						= Logger.getLogger(ReactomeConnector.class);
+	private static Logger												 logger						= LogManager.getLogger(ReactomeConnector.class);
 	/**
 	 * Url used for accessing Reactome RestFULL API.
 	 */
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/ReactomeQueryUtil.java b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/ReactomeQueryUtil.java
index c08d6d4ff02134ee6410ddd810e9972d16cc95ce..6f410e1148ea46dbc6b0640965b0c035324ac396 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/ReactomeQueryUtil.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/ReactomeQueryUtil.java
@@ -11,7 +11,7 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import lcsb.mapviewer.annotation.services.annotators.AnnotatorException;
@@ -67,7 +67,7 @@ public class ReactomeQueryUtil {
 	/**
 	 * Default class logger.
 	 */
-	private static Logger			logger = Logger.getLogger(ReactomeQueryUtil.class);
+	private static Logger			logger = LogManager.getLogger(ReactomeQueryUtil.class);
 
 	/**
 	 * Interface used for accessing data in the reactome database.
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ANodeComparator.java b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ANodeComparator.java
index 4bf8c5d004de5bcad3ebef766551c52aface5b8e..0046cbf5288b22f0ba2762d728d20157f0365310 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ANodeComparator.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ANodeComparator.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.reactome.utils.comparators;
 
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -35,7 +35,7 @@ public abstract class ANodeComparator<T extends Element, U extends ReactomeDatab
 	/**
 	 * Default class logger.
 	 */
-	private static Logger																		 logger	= Logger.getLogger(ANodeComparator.class);
+	private static Logger																		 logger	= LogManager.getLogger(ANodeComparator.class);
 
 	/**
 	 * Service used for annotation of proteins (and finding annotation of
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ComplexAndCandidateSetComparator.java b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ComplexAndCandidateSetComparator.java
index ac32c6f566bbf68fdc1768870153a07c65e78a0d..d74488c02995d9cd1e5300a3ae82d7e6d10cbef7 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ComplexAndCandidateSetComparator.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ComplexAndCandidateSetComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.reactome.utils.comparators;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.map.species.Complex;
 import lcsb.mapviewer.reactome.model.ReactomeCandidateSet;
@@ -19,7 +19,7 @@ public class ComplexAndCandidateSetComparator extends ANodeComparator<Complex, R
 	/**
 	 * Default class logger.
 	 */
-	private static Logger logger = Logger.getLogger(ComplexAndCandidateSetComparator.class);
+	private static Logger logger = LogManager.getLogger(ComplexAndCandidateSetComparator.class);
 
 	/**
 	 * Default constructor.
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ComplexAndComplexComparator.java b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ComplexAndComplexComparator.java
index 7a9e32281bae0c8031786dad7e1441452ceb229f..5c287bbeaf0899e29d33aad9afa4fd4eda4f3729 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ComplexAndComplexComparator.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ComplexAndComplexComparator.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.reactome.utils.comparators;
 
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.map.MiriamData;
 import lcsb.mapviewer.model.map.species.Complex;
@@ -23,7 +23,7 @@ public class ComplexAndComplexComparator extends ANodeComparator<Complex, Reacto
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger logger = Logger.getLogger(ComplexAndComplexComparator.class);
+	private static Logger logger = LogManager.getLogger(ComplexAndComplexComparator.class);
 
 	/**
 	 * Default constructor.
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ComplexAndDefinedSetComparator.java b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ComplexAndDefinedSetComparator.java
index 7270ee6ecb341ba33d6ca4763d6694518cc99c23..d51b3acf7c7980dcd99f6c34eb2c94d1dd279f0d 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ComplexAndDefinedSetComparator.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ComplexAndDefinedSetComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.reactome.utils.comparators;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.map.species.Complex;
 import lcsb.mapviewer.reactome.model.ReactomeDefinedSet;
@@ -19,7 +19,7 @@ public class ComplexAndDefinedSetComparator extends ANodeComparator<Complex, Rea
 	/**
 	 * Default class logger.
 	 */
-	private static Logger logger = Logger.getLogger(ComplexAndDefinedSetComparator.class);
+	private static Logger logger = LogManager.getLogger(ComplexAndDefinedSetComparator.class);
 
 	/**
 	 * Default constructor.
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ComplexAndOtherEntityComparator.java b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ComplexAndOtherEntityComparator.java
index 00708cc8f568ac3f5f67d1f9411ef438f35f382a..f4fc3bd41f6e85a798b6c1d472434bd59995b6eb 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ComplexAndOtherEntityComparator.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ComplexAndOtherEntityComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.reactome.utils.comparators;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.map.species.Complex;
 import lcsb.mapviewer.reactome.model.ReactomeOtherEntity;
@@ -19,7 +19,7 @@ public class ComplexAndOtherEntityComparator extends ANodeComparator<Complex, Re
 	/**
 	 * Default class logger.
 	 */
-	private static Logger logger = Logger.getLogger(ComplexAndOtherEntityComparator.class);
+	private static Logger logger = LogManager.getLogger(ComplexAndOtherEntityComparator.class);
 
 	/**
 	 * Default constructor.
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/DrugAndCatalystComparator.java b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/DrugAndCatalystComparator.java
index 006b3f5abd3a5b76a6bca28c4916241f57ea77d9..5189ce78a6c1fb2324cd30e1d54b47497123d7fa 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/DrugAndCatalystComparator.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/DrugAndCatalystComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.reactome.utils.comparators;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.map.species.Drug;
 import lcsb.mapviewer.reactome.model.ReactomeCatalystActivity;
@@ -18,7 +18,7 @@ public class DrugAndCatalystComparator extends ANodeComparator<Drug, ReactomeCat
 	/**
 	 * Default class logger.
 	 */
-	private static Logger logger = Logger.getLogger(DrugAndCatalystComparator.class);
+	private static Logger logger = LogManager.getLogger(DrugAndCatalystComparator.class);
 
 	/**
 	 * Default constructor.
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/GeneAndDefinedSetComparator.java b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/GeneAndDefinedSetComparator.java
index 415e2dcb33e19eff5ff24d37eca9803e1a342207..0eff54c6b637dce1e8fa725085b9c7f7eb004803 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/GeneAndDefinedSetComparator.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/GeneAndDefinedSetComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.reactome.utils.comparators;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.map.species.Gene;
 import lcsb.mapviewer.reactome.model.ReactomeDefinedSet;
@@ -19,7 +19,7 @@ public class GeneAndDefinedSetComparator extends ANodeComparator<Gene, ReactomeD
 	/**
 	 * Default class logger.
 	 */
-	private static Logger logger = Logger.getLogger(GeneAndDefinedSetComparator.class);
+	private static Logger logger = LogManager.getLogger(GeneAndDefinedSetComparator.class);
 
 	/**
 	 * Default constructor.
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/GeneAndOtherEntityComparator.java b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/GeneAndOtherEntityComparator.java
index b92547875bd9eb8ce1c01ca7fb16bb7568bfbfb6..826d0c0572cbf67f998be0f60540303beac03944 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/GeneAndOtherEntityComparator.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/GeneAndOtherEntityComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.reactome.utils.comparators;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.map.species.Gene;
 import lcsb.mapviewer.reactome.model.ReactomeOtherEntity;
@@ -19,7 +19,7 @@ public class GeneAndOtherEntityComparator extends ANodeComparator<Gene, Reactome
 	/**
 	 * Default class logger.
 	 */
-	private static Logger logger = Logger.getLogger(GeneAndOtherEntityComparator.class);
+	private static Logger logger = LogManager.getLogger(GeneAndOtherEntityComparator.class);
 
 	/**
 	 * Default constructor.
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/MatchResult.java b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/MatchResult.java
index 46376f2de65261cbe8290a6d324601f9d22fb386..7647995fdae5bf8b1ba6b851e69053f7392df024 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/MatchResult.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/MatchResult.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.reactome.utils.comparators;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.map.reaction.Reaction;
 import lcsb.mapviewer.model.map.species.Element;
@@ -24,7 +24,7 @@ public class MatchResult {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger								 logger									 = Logger.getLogger(MatchResult.class);
+	private static Logger								 logger									 = LogManager.getLogger(MatchResult.class);
 
 	/**
 	 * Local reaction to be compared.
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/NodeComparator.java b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/NodeComparator.java
index a1624c668b9bdfc7dc66e7334ba49e16144f8e08..3b70ea7936081051daee1daa36294b1405c63de6 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/NodeComparator.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/NodeComparator.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.reactome.utils.comparators;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.model.map.species.Element;
@@ -25,7 +25,7 @@ public class NodeComparator extends ANodeComparator<Element, ReactomeDatabaseObj
 	/**
 	 * Default class logger.
 	 */
-	private static Logger											 logger			 = Logger.getLogger(NodeComparator.class);
+	private static Logger											 logger			 = LogManager.getLogger(NodeComparator.class);
 
 	/**
 	 * This map contains implementation of all known comparators between local
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ProteinAndComplexComparator.java b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ProteinAndComplexComparator.java
index a3ec075b62a745afa469d10fcb6d75cc8492ae60..624fce2f6d82792bcff0a47813bd886968751bcd 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ProteinAndComplexComparator.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ProteinAndComplexComparator.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.reactome.utils.comparators;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.map.MiriamData;
 import lcsb.mapviewer.model.map.MiriamType;
@@ -25,7 +25,7 @@ public class ProteinAndComplexComparator extends ANodeComparator<Protein, Reacto
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger logger = Logger.getLogger(ProteinAndComplexComparator.class);
+	private static Logger logger = LogManager.getLogger(ProteinAndComplexComparator.class);
 
 	/**
 	 * Default constructor.
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ProteinAndEntityWithAccessionedSequenceComparator.java b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ProteinAndEntityWithAccessionedSequenceComparator.java
index dab3af2fb5788808ea16bdbb744c91626ea465af..8ed2783dc7f107e546ec03a7053bd6a482de763a 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ProteinAndEntityWithAccessionedSequenceComparator.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ProteinAndEntityWithAccessionedSequenceComparator.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.reactome.utils.comparators;
 
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.model.map.MiriamData;
@@ -28,7 +28,7 @@ public class ProteinAndEntityWithAccessionedSequenceComparator extends ANodeComp
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger logger = Logger.getLogger(ProteinAndEntityWithAccessionedSequenceComparator.class);
+	private static Logger logger = LogManager.getLogger(ProteinAndEntityWithAccessionedSequenceComparator.class);
 
 	/**
 	 * Default constructor.
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ProteinAndGenomeEncodedEntity.java b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ProteinAndGenomeEncodedEntity.java
index 70095a10044f7a5fb9603850b0c75410cea0bb89..41986d9f9abedff99226fbae8ab13f84a861d461 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ProteinAndGenomeEncodedEntity.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ProteinAndGenomeEncodedEntity.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.reactome.utils.comparators;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.map.species.Protein;
 import lcsb.mapviewer.reactome.model.ReactomeGenomeEncodedEntity;
@@ -19,7 +19,7 @@ public class ProteinAndGenomeEncodedEntity extends ANodeComparator<Protein, Reac
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger	logger	= Logger.getLogger(ProteinAndGenomeEncodedEntity.class);
+	private static Logger	logger	= LogManager.getLogger(ProteinAndGenomeEncodedEntity.class);
 
 	/**
 	 * Default constructor.
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ProteinAndOtherEntityComparator.java b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ProteinAndOtherEntityComparator.java
index f788afb4651cd02e45fe3be2fcc56622f6115889..b709dec94479ebcffbe598bfaeaef32abbcda805 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ProteinAndOtherEntityComparator.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ProteinAndOtherEntityComparator.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.reactome.utils.comparators;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.map.species.Protein;
 import lcsb.mapviewer.reactome.model.ReactomeOtherEntity;
@@ -19,7 +19,7 @@ public class ProteinAndOtherEntityComparator extends ANodeComparator<Protein, Re
 	/**
 	 * Default class logger.
 	 */
-	private static Logger logger = Logger.getLogger(ProteinAndOtherEntityComparator.class);
+	private static Logger logger = LogManager.getLogger(ProteinAndOtherEntityComparator.class);
 
 	/**
 	 * Default constructor.
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ProteinAndPolymerComparator.java b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ProteinAndPolymerComparator.java
index debf5268d368fedc7be7ba01df59e5101ae34cce..2e29e9807d9cd29f3a5ccfa68471c2455da329b4 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ProteinAndPolymerComparator.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/utils/comparators/ProteinAndPolymerComparator.java
@@ -4,7 +4,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.model.map.MiriamData;
@@ -34,7 +34,7 @@ public class ProteinAndPolymerComparator extends ANodeComparator<Protein, Reacto
 	/**
 	 * Default class logger.
 	 */
-	private static Logger	logger	= Logger.getLogger(ProteinAndPolymerComparator.class);
+	private static Logger	logger	= LogManager.getLogger(ProteinAndPolymerComparator.class);
 
 	/**
 	 * Default constructor.
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/xml/ReactomeNodeParser.java b/reactome/src/main/java/lcsb/mapviewer/reactome/xml/ReactomeNodeParser.java
index 558ffd3322dcd1c427f73dec4ac8455fcfcf76a7..c906d0335d448ba1a76855b6e471665d90a9c081 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/xml/ReactomeNodeParser.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/xml/ReactomeNodeParser.java
@@ -8,7 +8,7 @@ import lcsb.mapviewer.reactome.model.ReactomeStatus;
 import lcsb.mapviewer.reactome.xml.columnParser.ColumnParser;
 import lcsb.mapviewer.reactome.xml.columnParser.ColumnParserFactory;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.w3c.dom.Node;
@@ -26,7 +26,7 @@ public abstract class ReactomeNodeParser<T extends ReactomeDatabaseObject> {
 	/**
 	 * Default class logger.
 	 */
-	private Logger								logger	= Logger.getLogger(ReactomeNodeParser.class);
+	private Logger								logger	= LogManager.getLogger(ReactomeNodeParser.class);
 	/**
 	 * Class for which this parser was created.
 	 */
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/xml/ReactomeParserFactory.java b/reactome/src/main/java/lcsb/mapviewer/reactome/xml/ReactomeParserFactory.java
index 26fd904616385c98ba0269fbcb4ebf2abb9a7a4a..0548a258a33f93629b1c62badd84d3c278dbd837 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/xml/ReactomeParserFactory.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/xml/ReactomeParserFactory.java
@@ -6,7 +6,7 @@ import java.util.Map;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.persist.SpringApplicationContext;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Service;
 
 /**
@@ -29,7 +29,7 @@ public final class ReactomeParserFactory {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private static Logger																logger	= Logger.getLogger(ReactomeParserFactory.class);
+	private static Logger																logger	= LogManager.getLogger(ReactomeParserFactory.class);
 
 	/**
 	 * Static field with all already created parsers.
diff --git a/reactome/src/main/java/lcsb/mapviewer/reactome/xml/columnParser/DatabaseObjectColumnParser.java b/reactome/src/main/java/lcsb/mapviewer/reactome/xml/columnParser/DatabaseObjectColumnParser.java
index b4f6aa1d20ff9d4f3c60ff4102e3b5acc66a0525..06332a0c1180cc1525373462214269f2766bd2a7 100644
--- a/reactome/src/main/java/lcsb/mapviewer/reactome/xml/columnParser/DatabaseObjectColumnParser.java
+++ b/reactome/src/main/java/lcsb/mapviewer/reactome/xml/columnParser/DatabaseObjectColumnParser.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.reactome.xml.columnParser;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.reactome.model.ReactomeDatabaseObject;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.w3c.dom.Node;
 
 /**
@@ -19,7 +19,7 @@ public class DatabaseObjectColumnParser extends ColumnParser<ReactomeDatabaseObj
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private Logger logger = Logger.getLogger(DatabaseObjectColumnParser.class);
+	private Logger logger = LogManager.getLogger(DatabaseObjectColumnParser.class);
 
 	/**
 	 * Default constructor.
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/ReactomeTestFunctions.java b/reactome/src/test/java/lcsb/mapviewer/reactome/ReactomeTestFunctions.java
index 277d349526f5a08f9cf2b7a6e7d3898216456942..d93c1521c112c762880dbf9b935c1d67008e46ad 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/ReactomeTestFunctions.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/ReactomeTestFunctions.java
@@ -27,7 +27,7 @@ import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.annotation.Rollback;
@@ -54,7 +54,7 @@ import lcsb.mapviewer.reactome.utils.ReactomeQueryUtil;
 @ContextConfiguration(classes = SpringReactomeTestConfig.class)
 @RunWith(SpringJUnit4ClassRunner.class)
 public abstract class ReactomeTestFunctions {
-  private Logger logger = Logger.getLogger(ReactomeTestFunctions.class);
+  private Logger logger = LogManager.getLogger(ReactomeTestFunctions.class);
 
   @Autowired
   protected PermanentDatabaseLevelCacheInterface cache;
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/utils/ReactionComparatorTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/utils/ReactionComparatorTest.java
index 8b3af993bfde121415e0472a47c3c85e845f959e..50e9ee54f2e5327954435a8bba5b9403f3e39473 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/utils/ReactionComparatorTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/utils/ReactionComparatorTest.java
@@ -8,7 +8,7 @@ import lcsb.mapviewer.reactome.ReactomeTestFunctions;
 import lcsb.mapviewer.reactome.model.ReactomeReactionlikeEvent;
 import lcsb.mapviewer.reactome.utils.comparators.MatchResult.MatchStatus;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
@@ -16,7 +16,7 @@ import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
 public class ReactionComparatorTest extends ReactomeTestFunctions {
-	Logger logger = Logger.getLogger(ReactionComparatorTest.class);
+	Logger logger = LogManager.getLogger(ReactionComparatorTest.class);
 
 	@Autowired
 	ReactionComparator comparator;
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/utils/ReactomeConnectorTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/utils/ReactomeConnectorTest.java
index 6dc740d05a21fc8e810c6670e6b9c47bfa2f98ad..4815dbbe515d608d393d0ec55dd2ad7c904bb4b2 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/utils/ReactomeConnectorTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/utils/ReactomeConnectorTest.java
@@ -12,7 +12,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -33,7 +33,7 @@ import lcsb.mapviewer.reactome.model.ReactomeReactionlikeEvent;
 import lcsb.mapviewer.reactome.model.ReactomeSimpleEntity;
 
 public class ReactomeConnectorTest extends ReactomeTestFunctions {
-  Logger logger = Logger.getLogger(ReactomeConnectorTest.class);
+  Logger logger = LogManager.getLogger(ReactomeConnectorTest.class);
 
   CacheType reactomeCacheType;
 
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/utils/ReactomeQueryUtilTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/utils/ReactomeQueryUtilTest.java
index 0bc125fb112d27787872f84fec86294921b2eb2b..520776b7ee8006e13b045a6877b57cbdd7df1e4e 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/utils/ReactomeQueryUtilTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/utils/ReactomeQueryUtilTest.java
@@ -11,7 +11,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
@@ -34,7 +34,7 @@ public class ReactomeQueryUtilTest extends ReactomeTestFunctions {
 
 	Model									model;
 
-	static Logger										logger	= Logger.getLogger(ReactomeQueryUtilTest.class);
+	static Logger										logger	= LogManager.getLogger(ReactomeQueryUtilTest.class);
 	@Autowired
 	ReactionComparator							reactionComparator;
 	@Autowired
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/utils/comparators/NodeComparatorTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/utils/comparators/NodeComparatorTest.java
index 62a477e92d3559962a04e1d8cc0277c46b2f644d..a08bf911113a1b7256cc0e7681c876a7d5c33c82 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/utils/comparators/NodeComparatorTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/utils/comparators/NodeComparatorTest.java
@@ -4,7 +4,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
@@ -29,7 +29,7 @@ public class NodeComparatorTest extends ReactomeTestFunctions {
 
 	Model													 model;
 
-	static Logger									 logger	= Logger.getLogger(NodeComparatorTest.class);
+	static Logger									 logger	= LogManager.getLogger(NodeComparatorTest.class);
 	@Autowired
 	ReactomeQueryUtil							 rcu;
 	@Autowired
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/GeneralTests.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/GeneralTests.java
index 19daa9c94ff6a1dafcbcb5445610aa48797149eb..58b32c4beac919bd3ffdfa69c03ebd1828aef272 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/GeneralTests.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/GeneralTests.java
@@ -4,14 +4,14 @@ import static org.junit.Assert.assertFalse;
 import lcsb.mapviewer.reactome.ReactomeTestFunctions;
 import lcsb.mapviewer.reactome.model.ReactomeDatabaseObject;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
 
 public class GeneralTests extends ReactomeTestFunctions {
-  Logger logger = Logger.getLogger(GeneralTests.class);
+  Logger logger = LogManager.getLogger(GeneralTests.class);
 
   @Before
   public void setUp() throws Exception {
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeBlackBoxEventParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeBlackBoxEventParserTest.java
index 3a9c42066069545e1a31dfe62327b66137c0cc82..b9c5df1cc9452c9c3e3a97fd64c028d3629b9967 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeBlackBoxEventParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeBlackBoxEventParserTest.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.reactome.xml;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import lcsb.mapviewer.reactome.model.ReactomeBlackBoxEvent;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
 public class ReactomeBlackBoxEventParserTest extends ReactomeTestFunctions {
-  Logger logger = Logger.getLogger(ReactomeBlackBoxEventParserTest.class);
+  Logger logger = LogManager.getLogger(ReactomeBlackBoxEventParserTest.class);
 
   @Autowired
   ReactomeBlackBoxEventParser parser;
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeCandidateSetParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeCandidateSetParserTest.java
index c882c0cdabf43ee16bfb01643a952c75612a20af..41e22cc9906ba6bd4b93c9160264e50818efe195 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeCandidateSetParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeCandidateSetParserTest.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.reactome.xml;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import lcsb.mapviewer.reactome.model.ReactomeCandidateSet;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
 public class ReactomeCandidateSetParserTest extends ReactomeTestFunctions {
-	Logger										 logger	= Logger.getLogger(ReactomeCandidateSetParserTest.class);
+	Logger										 logger	= LogManager.getLogger(ReactomeCandidateSetParserTest.class);
 
 	@Autowired
 	ReactomeCandidateSetParser parser;
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeCatalystActivityParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeCatalystActivityParserTest.java
index e3bb92a7f24d62c1bcc5cfbd0564a1a06a7c7c67..db3ab6ffd2337ce02d38a3f97089dde930d0f709 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeCatalystActivityParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeCatalystActivityParserTest.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.reactome.xml;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import lcsb.mapviewer.reactome.model.ReactomeCatalystActivity;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
 public class ReactomeCatalystActivityParserTest extends ReactomeTestFunctions {
-	Logger												 logger	= Logger.getLogger(ReactomeCatalystActivityParserTest.class);
+	Logger												 logger	= LogManager.getLogger(ReactomeCatalystActivityParserTest.class);
 
 	@Autowired
 	ReactomeCatalystActivityParser parser;
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeCompartmentParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeCompartmentParserTest.java
index 21936cfa6edfae9bbdb519d8d3894178d87c70f1..a4683364b20a0ee157688702ea2bf8c089198389 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeCompartmentParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeCompartmentParserTest.java
@@ -7,7 +7,7 @@ import lcsb.mapviewer.reactome.ReactomeTestFunctions;
 import lcsb.mapviewer.reactome.model.ReactomeCompartment;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.w3c.dom.Document;
 
 public class ReactomeCompartmentParserTest extends ReactomeTestFunctions{
-	Logger logger = Logger.getLogger(ReactomeCompartmentParserTest.class);
+	Logger logger = LogManager.getLogger(ReactomeCompartmentParserTest.class);
 
 	@Autowired
 	ReactomeCompartmentParser parser = new ReactomeCompartmentParser();
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeComplexParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeComplexParserTest.java
index 7b585e68431569edf3ab08e7baafd0b985ea42a9..e3d448b9daef1c4bb10f29984cfcffed03f02843 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeComplexParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeComplexParserTest.java
@@ -4,7 +4,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -16,7 +16,7 @@ import lcsb.mapviewer.reactome.model.ReactomeComplex;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
 public class ReactomeComplexParserTest extends ReactomeTestFunctions {
-  Logger logger = Logger.getLogger(ReactomeComplexParserTest.class);
+  Logger logger = LogManager.getLogger(ReactomeComplexParserTest.class);
 
   @Autowired
   ReactomeComplexParser parser;
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeDefinedSetParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeDefinedSetParserTest.java
index 8a46281582fbebd17df238fe8fffac21ef292e34..031e578d36ef4f2e686c4660904975ae33da288a 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeDefinedSetParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeDefinedSetParserTest.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.reactome.xml;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import lcsb.mapviewer.reactome.model.ReactomeDefinedSet;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
 public class ReactomeDefinedSetParserTest extends ReactomeTestFunctions {
-  Logger logger = Logger.getLogger(ReactomeDefinedSetParserTest.class);
+  Logger logger = LogManager.getLogger(ReactomeDefinedSetParserTest.class);
 
   @Autowired
   ReactomeDefinedSetParser parser;
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeDepolymerisationParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeDepolymerisationParserTest.java
index e76302fdabbed8b7a9f1b4ae07c24681311707f2..46a17bab8b39337f6338a31400beb47079523656 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeDepolymerisationParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeDepolymerisationParserTest.java
@@ -5,7 +5,7 @@ import static org.junit.Assert.fail;
 import lcsb.mapviewer.reactome.ReactomeTestFunctions;
 import lcsb.mapviewer.reactome.model.ReactomeDepolymerisation;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -13,7 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.w3c.dom.Document;
 
 public class ReactomeDepolymerisationParserTest extends ReactomeTestFunctions{
-	Logger logger = Logger.getLogger(ReactomeDepolymerisationParserTest.class);
+	Logger logger = LogManager.getLogger(ReactomeDepolymerisationParserTest.class);
 
 	@Autowired
 	ReactomeDepolymerisationParser parser ;
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeDiseaseParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeDiseaseParserTest.java
index 3c2c8dacc6136b623182e495351ad1b5848fff8b..91706e1f261f37f407fb1bc42042b1b37555952f 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeDiseaseParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeDiseaseParserTest.java
@@ -6,7 +6,7 @@ import static org.junit.Assert.fail;
 import lcsb.mapviewer.reactome.ReactomeTestFunctions;
 import lcsb.mapviewer.reactome.model.ReactomeDisease;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -14,7 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.w3c.dom.Document;
 
 public class ReactomeDiseaseParserTest extends ReactomeTestFunctions{
-	Logger logger = Logger.getLogger(ReactomeDiseaseParserTest.class);
+	Logger logger = LogManager.getLogger(ReactomeDiseaseParserTest.class);
 
 	@Autowired
 	ReactomeDiseaseParser parser ;
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeEntityCompartmentParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeEntityCompartmentParserTest.java
index c313365fb718f24f94203b923344aa4c3946ee55..c986b721b0f7802f12c46e2ec152cfb362647830 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeEntityCompartmentParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeEntityCompartmentParserTest.java
@@ -7,7 +7,7 @@ import lcsb.mapviewer.reactome.ReactomeTestFunctions;
 import lcsb.mapviewer.reactome.model.ReactomeEntityCompartment;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.w3c.dom.Document;
 
 public class ReactomeEntityCompartmentParserTest extends ReactomeTestFunctions{
-	Logger logger = Logger.getLogger(ReactomeEntityCompartmentParserTest.class);
+	Logger logger = LogManager.getLogger(ReactomeEntityCompartmentParserTest.class);
 
 
 	@Autowired
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeFigureParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeFigureParserTest.java
index 7c7d85187043feb137640f84d6de49fca9f48846..f8d59e2e9f3c16e2cb009921649e9c740404bddd 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeFigureParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeFigureParserTest.java
@@ -7,7 +7,7 @@ import lcsb.mapviewer.reactome.ReactomeTestFunctions;
 import lcsb.mapviewer.reactome.model.ReactomeFigure;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.w3c.dom.Document;
 
 public class ReactomeFigureParserTest extends ReactomeTestFunctions{
-	Logger logger = Logger.getLogger(ReactomeFigureParserTest.class);
+	Logger logger = LogManager.getLogger(ReactomeFigureParserTest.class);
 
 	@Autowired
 	ReactomeFigureParser parser ;
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeGenomeEncodedEntityParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeGenomeEncodedEntityParserTest.java
index 9a4bf5a13be967daec8feca01314afcf1191695a..5c3997230b5bfc0bcd29c84431623c4edc855955 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeGenomeEncodedEntityParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeGenomeEncodedEntityParserTest.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.reactome.xml;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import lcsb.mapviewer.reactome.model.ReactomeGenomeEncodedEntity;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
 public class ReactomeGenomeEncodedEntityParserTest extends ReactomeTestFunctions {
-  Logger logger = Logger.getLogger(ReactomeGenomeEncodedEntityParserTest.class);
+  Logger logger = LogManager.getLogger(ReactomeGenomeEncodedEntityParserTest.class);
 
   @Autowired
   ReactomeGenomeEncodedEntityParser parser = new ReactomeGenomeEncodedEntityParser();
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeGoBiologicalProcessParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeGoBiologicalProcessParserTest.java
index 8f034f5ece3882774e624c3797f9eaf2f59654d5..467abedbe8d107895222f48f53a6a80282fb458c 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeGoBiologicalProcessParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeGoBiologicalProcessParserTest.java
@@ -7,7 +7,7 @@ import lcsb.mapviewer.reactome.ReactomeTestFunctions;
 import lcsb.mapviewer.reactome.model.ReactomeGoBiologicalProcess;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.w3c.dom.Document;
 
 public class ReactomeGoBiologicalProcessParserTest extends ReactomeTestFunctions{
-	Logger logger = Logger.getLogger(ReactomeGoBiologicalProcessParserTest.class);
+	Logger logger = LogManager.getLogger(ReactomeGoBiologicalProcessParserTest.class);
 
 	@Autowired
 	ReactomeGoBiologicalProcessParser parser = new ReactomeGoBiologicalProcessParser();
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeGoMolecularFunctionParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeGoMolecularFunctionParserTest.java
index 5d842937e49f6311e3d3558e2ea9a34f9081e237..05bb1e9543823ca4346f91e10bcfcb9cc51e3aa9 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeGoMolecularFunctionParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeGoMolecularFunctionParserTest.java
@@ -7,7 +7,7 @@ import lcsb.mapviewer.reactome.ReactomeTestFunctions;
 import lcsb.mapviewer.reactome.model.ReactomeGoMolecularFunction;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.w3c.dom.Document;
 
 public class ReactomeGoMolecularFunctionParserTest extends ReactomeTestFunctions {
-	Logger															logger	= Logger.getLogger(ReactomeGoMolecularFunctionParserTest.class);
+	Logger															logger	= LogManager.getLogger(ReactomeGoMolecularFunctionParserTest.class);
 
 	@Autowired
 	ReactomeGoMolecularFunctionParser	parser;
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeInstanceEditParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeInstanceEditParserTest.java
index 628e25a3c81b7125e9eec44ac2abb866ee8e44ee..43779452ca8341802f454a61e2098ec203bdca41 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeInstanceEditParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeInstanceEditParserTest.java
@@ -9,7 +9,7 @@ import lcsb.mapviewer.reactome.ReactomeTestFunctions;
 import lcsb.mapviewer.reactome.model.ReactomeInstanceEdit;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -17,7 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.w3c.dom.Document;
 
 public class ReactomeInstanceEditParserTest extends ReactomeTestFunctions{
-	Logger logger = Logger.getLogger(ReactomeInstanceEditParserTest.class);
+	Logger logger = LogManager.getLogger(ReactomeInstanceEditParserTest.class);
 
 	@Autowired
 	ReactomeInstanceEditParser parser ;
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeLiteratureReferenceParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeLiteratureReferenceParserTest.java
index ffff51ff4072052c46ed15586cb141248f82b31a..f645aa78dee35eb79fd0e5a854269d806d422d0c 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeLiteratureReferenceParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeLiteratureReferenceParserTest.java
@@ -7,7 +7,7 @@ import lcsb.mapviewer.reactome.ReactomeTestFunctions;
 import lcsb.mapviewer.reactome.model.ReactomeLiteratureReference;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.w3c.dom.Document;
 
 public class ReactomeLiteratureReferenceParserTest extends ReactomeTestFunctions {
-	Logger														logger	= Logger.getLogger(ReactomeLiteratureReferenceParserTest.class);
+	Logger														logger	= LogManager.getLogger(ReactomeLiteratureReferenceParserTest.class);
 
 	@Autowired
 	ReactomeLiteratureReferenceParser	parser;
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeOtherEntityParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeOtherEntityParserTest.java
index ebffa145ef3a45c62cd70bd8ff1af363cd36e5fe..e3ec24f0e408d1af7893bbc8f3d59a169d13fdc0 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeOtherEntityParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeOtherEntityParserTest.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.reactome.xml;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import lcsb.mapviewer.reactome.model.ReactomeOtherEntity;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
 public class ReactomeOtherEntityParserTest extends ReactomeTestFunctions {
-	Logger										logger = Logger.getLogger(ReactomeOtherEntityParserTest.class);
+	Logger										logger = LogManager.getLogger(ReactomeOtherEntityParserTest.class);
 
 	@Autowired
 	ReactomeOtherEntityParser	parser;
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomePathwayParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomePathwayParserTest.java
index 39ccd8999b067c2c1b112350d281f3c28f038a78..4a0670d5ceb6e927dcccd165dd77feabf2633834 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomePathwayParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomePathwayParserTest.java
@@ -4,7 +4,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -16,7 +16,7 @@ import lcsb.mapviewer.reactome.model.ReactomePathway;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
 public class ReactomePathwayParserTest extends ReactomeTestFunctions {
-  Logger logger = Logger.getLogger(ReactomePathwayParserTest.class);
+  Logger logger = LogManager.getLogger(ReactomePathwayParserTest.class);
 
   @Autowired
   ReactomePathwayParser parser;
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomePersonParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomePersonParserTest.java
index 567dd6d466b359d39af93bfd4b6a6fd72b094071..8bf3296f85e726b1b0e80d8527c5798da36c0ac2 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomePersonParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomePersonParserTest.java
@@ -7,7 +7,7 @@ import lcsb.mapviewer.reactome.ReactomeTestFunctions;
 import lcsb.mapviewer.reactome.model.ReactomePerson;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.w3c.dom.Document;
 
 public class ReactomePersonParserTest extends ReactomeTestFunctions {
-	Logger								logger	= Logger.getLogger(ReactomePersonParserTest.class);
+	Logger								logger	= LogManager.getLogger(ReactomePersonParserTest.class);
 
 	@Autowired
 	ReactomePersonParser	parser	= new ReactomePersonParser();
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomePolymerParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomePolymerParserTest.java
index a5ddd6fefb8f4b09208411fdf2b36b293f021044..376dbf0949389fbb02eb9e0c0def750e05ad8953 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomePolymerParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomePolymerParserTest.java
@@ -7,7 +7,7 @@ import lcsb.mapviewer.reactome.ReactomeTestFunctions;
 import lcsb.mapviewer.reactome.model.ReactomePolymer;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.w3c.dom.Document;
 
 public class ReactomePolymerParserTest extends ReactomeTestFunctions{
-	Logger logger = Logger.getLogger(ReactomePolymerParserTest.class);
+	Logger logger = LogManager.getLogger(ReactomePolymerParserTest.class);
 
 	@Autowired
 	ReactomePolymerParser parser ;
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReactionParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReactionParserTest.java
index 32a7e71336dbdb2d5bfe955c2cd4f4387d2c6ee0..66a1776b92d3eb6bbc8b3a734ab1bc6e4f12157b 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReactionParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReactionParserTest.java
@@ -6,7 +6,7 @@ import lcsb.mapviewer.reactome.ReactomeTestFunctions;
 import lcsb.mapviewer.reactome.model.ReactomeReaction;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -14,7 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.w3c.dom.Document;
 
 public class ReactomeReactionParserTest extends ReactomeTestFunctions {
-	Logger									logger	= Logger.getLogger(ReactomeReactionParserTest.class);
+	Logger									logger	= LogManager.getLogger(ReactomeReactionParserTest.class);
 
 	@Autowired
 	ReactomeReactionParser	parser	= new ReactomeReactionParser();
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReferenceDatabaseParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReferenceDatabaseParserTest.java
index d43056899ff72f18819710521523d66f2f89a9e2..bfda02f50da1086ca905a590b7e6d7066a11c60d 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReferenceDatabaseParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReferenceDatabaseParserTest.java
@@ -7,7 +7,7 @@ import lcsb.mapviewer.reactome.ReactomeTestFunctions;
 import lcsb.mapviewer.reactome.model.ReactomeReferenceDatabase;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.w3c.dom.Document;
 
 public class ReactomeReferenceDatabaseParserTest extends ReactomeTestFunctions {
-	Logger													logger	= Logger.getLogger(ReactomeReferenceDatabaseParserTest.class);
+	Logger													logger	= LogManager.getLogger(ReactomeReferenceDatabaseParserTest.class);
 
 	@Autowired
 	ReactomeReferenceDatabaseParser	parser	= new ReactomeReferenceDatabaseParser();
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReferenceGeneProductParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReferenceGeneProductParserTest.java
index 2c51193790a348d9229da562ba4b1413212b49dc..486ffb0b8a036e53762b2f1b4f282a71dc7f88e0 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReferenceGeneProductParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReferenceGeneProductParserTest.java
@@ -6,7 +6,7 @@ import lcsb.mapviewer.reactome.ReactomeTestFunctions;
 import lcsb.mapviewer.reactome.model.ReactomeReferenceGeneProduct;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -14,7 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.w3c.dom.Document;
 
 public class ReactomeReferenceGeneProductParserTest extends ReactomeTestFunctions {
-  Logger logger = Logger.getLogger(ReactomeReferenceGeneProductParserTest.class);
+  Logger logger = LogManager.getLogger(ReactomeReferenceGeneProductParserTest.class);
 
   @Autowired
   ReactomeReferenceGeneProductParser parser = new ReactomeReferenceGeneProductParser();
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReferenceIsoformParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReferenceIsoformParserTest.java
index fc18b30ee840e7c8a35747f728832f10c14a76e2..b4bfb7174ea8199b8966008c56a66c573fcfd1ce 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReferenceIsoformParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReferenceIsoformParserTest.java
@@ -6,7 +6,7 @@ import lcsb.mapviewer.reactome.ReactomeTestFunctions;
 import lcsb.mapviewer.reactome.model.ReactomeReferenceIsoform;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -14,7 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.w3c.dom.Document;
 
 public class ReactomeReferenceIsoformParserTest extends ReactomeTestFunctions {
-	Logger													logger	= Logger.getLogger(ReactomeReferenceIsoformParserTest.class);
+	Logger													logger	= LogManager.getLogger(ReactomeReferenceIsoformParserTest.class);
 
 	@Autowired
 	ReactomeReferenceIsoformParser	parser;
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReferenceMoleculeParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReferenceMoleculeParserTest.java
index 855afc273967ff62cad7f9c3e845a8be14cc5b5c..f27f8ad788149845634dc76d5b04cc9deb26496f 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReferenceMoleculeParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeReferenceMoleculeParserTest.java
@@ -7,7 +7,7 @@ import lcsb.mapviewer.reactome.ReactomeTestFunctions;
 import lcsb.mapviewer.reactome.model.ReactomeReferenceMolecule;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.w3c.dom.Document;
 
 public class ReactomeReferenceMoleculeParserTest extends ReactomeTestFunctions {
-	Logger													logger	= Logger.getLogger(ReactomeReferenceMoleculeParserTest.class);
+	Logger													logger	= LogManager.getLogger(ReactomeReferenceMoleculeParserTest.class);
 
 	@Autowired
 	ReactomeReferenceMoleculeParser	parser;
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeSequenceDomainParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeSequenceDomainParserTest.java
index 32ada03a07c88061746f5c489939b3bbe959f2a4..50c3ec61746e6d4314d35a04026311bcf040dc74 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeSequenceDomainParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeSequenceDomainParserTest.java
@@ -5,7 +5,7 @@ import static org.junit.Assert.assertNotNull;
 import lcsb.mapviewer.reactome.ReactomeTestFunctions;
 import lcsb.mapviewer.reactome.model.ReactomeSequenceDomain;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -13,7 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.w3c.dom.Document;
 
 public class ReactomeSequenceDomainParserTest extends ReactomeTestFunctions {
-	Logger												logger	= Logger.getLogger(ReactomeSequenceDomainParserTest.class);
+	Logger												logger	= LogManager.getLogger(ReactomeSequenceDomainParserTest.class);
 
 	@Autowired
 	ReactomeSequenceDomainParser	parser	;
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeSimpleEntityParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeSimpleEntityParserTest.java
index 9e6e0427d0a9fa79888ff3c56d370c50cfaea73d..ca16598d8db6244e719a0ea940a6b1f31ff38487 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeSimpleEntityParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeSimpleEntityParserTest.java
@@ -7,7 +7,7 @@ import lcsb.mapviewer.reactome.ReactomeTestFunctions;
 import lcsb.mapviewer.reactome.model.ReactomeSimpleEntity;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.w3c.dom.Document;
 
 public class ReactomeSimpleEntityParserTest extends ReactomeTestFunctions {
-	Logger											logger	= Logger.getLogger(ReactomeSimpleEntityParserTest.class);
+	Logger											logger	= LogManager.getLogger(ReactomeSimpleEntityParserTest.class);
 
 	@Autowired
 	ReactomeSimpleEntityParser	parser;
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeSpeciesParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeSpeciesParserTest.java
index ab929896f2a9ccfa6ad74cd9e54118908b6c9247..98ced3fd93061df7fa808c7f9e9620fbb4a7cc91 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeSpeciesParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeSpeciesParserTest.java
@@ -7,7 +7,7 @@ import lcsb.mapviewer.reactome.ReactomeTestFunctions;
 import lcsb.mapviewer.reactome.model.ReactomeSpecies;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.w3c.dom.Document;
 
 public class ReactomeSpeciesParserTest extends ReactomeTestFunctions{
-	Logger logger = Logger.getLogger(ReactomeSpeciesParserTest.class);
+	Logger logger = LogManager.getLogger(ReactomeSpeciesParserTest.class);
 
 	@Autowired
 	ReactomeSpeciesParser parser ;
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeStableIdentifierParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeStableIdentifierParserTest.java
index 3198fbb14865a4d5a0bbc0778d28946e2450aaeb..c906830faa3c5531e2813ae7a8738cb05dc4af48 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeStableIdentifierParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeStableIdentifierParserTest.java
@@ -6,7 +6,7 @@ import static org.junit.Assert.fail;
 import lcsb.mapviewer.reactome.ReactomeTestFunctions;
 import lcsb.mapviewer.reactome.model.ReactomeStableIdentifier;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -14,7 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.w3c.dom.Document;
 
 public class ReactomeStableIdentifierParserTest extends ReactomeTestFunctions {
-	Logger													logger	= Logger.getLogger(ReactomeStableIdentifierParserTest.class);
+	Logger													logger	= LogManager.getLogger(ReactomeStableIdentifierParserTest.class);
 
 	@Autowired
 	ReactomeStableIdentifierParser	parser;
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeSummationParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeSummationParserTest.java
index 176eed691e3c7c5ae64fba0310bf188fb28527c2..ec5a3822337324ccd1d2ce79e4c5857ba3f09e1d 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeSummationParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeSummationParserTest.java
@@ -7,7 +7,7 @@ import lcsb.mapviewer.reactome.ReactomeTestFunctions;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 import lcsb.mapviewer.reactome.model.ReactomeSummation;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.w3c.dom.Document;
 
 public class ReactomeSummationParserTest extends ReactomeTestFunctions {
-	Logger									logger	= Logger.getLogger(ReactomeSummationParserTest.class);
+	Logger									logger	= LogManager.getLogger(ReactomeSummationParserTest.class);
 
 	@Autowired
 	ReactomeSummationParser	parser;
diff --git a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeURLParserTest.java b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeURLParserTest.java
index 66bcc28bc180c70b448db5ff42d446e97eac4cf6..27ec04b00e07b55feb3031e368a3f16b916091c3 100644
--- a/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeURLParserTest.java
+++ b/reactome/src/test/java/lcsb/mapviewer/reactome/xml/ReactomeURLParserTest.java
@@ -7,7 +7,7 @@ import lcsb.mapviewer.reactome.ReactomeTestFunctions;
 import lcsb.mapviewer.reactome.model.ReactomeStatus;
 import lcsb.mapviewer.reactome.model.ReactomeURL;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -15,7 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.w3c.dom.Document;
 
 public class ReactomeURLParserTest extends ReactomeTestFunctions {
-	Logger						logger	= Logger.getLogger(ReactomeURLParserTest.class);
+	Logger						logger	= LogManager.getLogger(ReactomeURLParserTest.class);
 
 	@Autowired
 	ReactomeURLParser	parser;
diff --git a/reactome/src/test/resources/log4j.properties b/reactome/src/test/resources/log4j.properties
deleted file mode 100644
index 5f361d3bfa44174ff3eb6dd785d238f544ecb678..0000000000000000000000000000000000000000
--- a/reactome/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-#Set root logger 's level and its appender to an appender called CONSOLE which is defined below.
-log4j.rootLogger=info, CONSOLE
-
-#Set the behavior of the CONSOLE appender 
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-#log4j.appender.CONSOLE.layout.ConversionPattern=%m%n
-
-
-#Set the behavior of the FILE appender 
-log4j.appender.R=org.apache.log4j.FileAppender
-log4j.appender.R.File=${catalina.home}/logs/MapViewer.log
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-
-
-log4j.logger.org.springframework=warn
-log4j.logger.org.hibernate=warn
-log4j.logger.lcsb=debug
-log4j.logger.lcsb.mapviewer.persist.DbUtils=info
-log4j.logger.lcsb.mapviewer.annotation.cache.PermanentDatabaseLevelCache=info
-
-log4j.logger.lcsb.mapviewer.reactome.utils.ReactomeConnector=info
\ No newline at end of file
diff --git a/reactome/src/test/resources/log4j2.properties b/reactome/src/test/resources/log4j2.properties
new file mode 100644
index 0000000000000000000000000000000000000000..b5eaa32682d177bf266eb6ed4831b4e8f4b9135d
--- /dev/null
+++ b/reactome/src/test/resources/log4j2.properties
@@ -0,0 +1,25 @@
+rootLogger.level = INFO
+appenders = console
+
+appender.console.type = Console
+appender.console.name = STDOUT
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %d %5p [%t] (%F:%L) - %m%n
+
+rootLogger.appenderRefs = console
+
+rootLogger.appenderRef.console.ref = STDOUT
+
+logger.minerva.name = lcsb
+logger.minerva.level = debug
+logger.minerva-persist.name = lcsb.mapviewer.persist.DbUtils
+logger.minerva-persist.level = info
+logger.minerva-cache.name = lcsb.mapviewer.annotation.cache
+logger.minerva-cache.level = info
+
+
+logger.springframework.name = org.springframework
+logger.springframework.level = warn
+
+logger.hibernate.name = org.hibernate
+logger.hibernate.level = warn
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/BaseController.java b/rest-api/src/main/java/lcsb/mapviewer/api/BaseController.java
index 7bc7a6182d8300741589675c677f06342c3be029..d81c965c5fbd82a2e87a1de494af62fde927b9c6 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/BaseController.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/BaseController.java
@@ -6,7 +6,7 @@ import java.net.URLDecoder;
 import java.util.TreeMap;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -24,7 +24,7 @@ import lcsb.mapviewer.common.Configuration;
 import lcsb.mapviewer.common.exception.InvalidStateException;
 
 public abstract class BaseController {
-  private Logger logger = Logger.getLogger(BaseController.class);
+  private Logger logger = LogManager.getLogger(BaseController.class);
 
   private ObjectMapper mapper = new ObjectMapper();
 
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java
index a25d85de5b336ded45bbf38c621bb4a743ce4597..c37806d7a5c9c6cc210b1d9b1f7b7644acb861b7 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java
@@ -22,7 +22,7 @@ import javax.xml.transform.stream.StreamResult;
 import javax.xml.transform.stream.StreamSource;
 
 import org.apache.commons.lang3.math.NumberUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.io.ClassPathResource;
 import org.springframework.core.io.Resource;
@@ -65,7 +65,7 @@ public abstract class BaseRestImpl {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(BaseRestImpl.class);
+  private static Logger logger = LogManager.getLogger(BaseRestImpl.class);
 
   @Autowired
   private IModelService modelService;
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/ElementIdentifierType.java b/rest-api/src/main/java/lcsb/mapviewer/api/ElementIdentifierType.java
index 6f68907e4cf1ee60e267d782aa25e3327e5361cd..5bae9785dde79907d4950770b4af0f72dc3ae375 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/ElementIdentifierType.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/ElementIdentifierType.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.api;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Enum identifying type of {@link ElementIdentifier}.
@@ -30,7 +30,7 @@ public enum ElementIdentifierType {
    */
   private String jsName;
 
-  private static Logger logger = Logger.getLogger(ElementIdentifierType.class);
+  private static Logger logger = LogManager.getLogger(ElementIdentifierType.class);
 
   /**
    * Constructor initializing enum type.
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/configuration/ConfigurationRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/configuration/ConfigurationRestImpl.java
index 326e146520f042e5f901211200d4c09a4576e18b..ddc14e7cb4d95e286be5505e841211c20d04d331 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/configuration/ConfigurationRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/configuration/ConfigurationRestImpl.java
@@ -9,7 +9,7 @@ import java.util.Queue;
 import java.util.Set;
 import java.util.TreeMap;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -48,7 +48,7 @@ public class ConfigurationRestImpl extends BaseRestImpl {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(ConfigurationRestImpl.class);
+  private Logger logger = LogManager.getLogger(ConfigurationRestImpl.class);
 
   private IConfigurationService configurationService;
 
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/convert/ConvertController.java b/rest-api/src/main/java/lcsb/mapviewer/api/convert/ConvertController.java
index 4fb92cf8f2349b3ab713bc69299f3ea8aa53873d..0920cee82d1d6fde69bc0c9bf9e7919e232ddfc3 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/convert/ConvertController.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/convert/ConvertController.java
@@ -6,7 +6,7 @@ import java.util.Map;
 
 import javax.xml.stream.XMLStreamException;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.sbml.jsbml.SBMLException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
@@ -32,7 +32,7 @@ import lcsb.mapviewer.services.SecurityException;
 @RestController
 public class ConvertController extends BaseController {
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(ConvertController.class);
+  private Logger logger = LogManager.getLogger(ConvertController.class);
 
   @Autowired
   private ConvertRestImpl convertController;
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/convert/ConvertRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/convert/ConvertRestImpl.java
index c68685a48b43bf748772b971a11223a15fd3f542..729750cb02d02149128eefc9ac6306130c0ef06d 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/convert/ConvertRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/convert/ConvertRestImpl.java
@@ -14,7 +14,7 @@ import java.util.Map;
 import javax.xml.stream.XMLStreamException;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.sbml.jsbml.SBMLException;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -38,7 +38,7 @@ import lcsb.mapviewer.services.SecurityException;
 public class ConvertRestImpl extends BaseRestImpl {
 	
 	  @SuppressWarnings("unused")
-	  private Logger logger = Logger.getLogger(ConvertRestImpl.class);
+	  private Logger logger = LogManager.getLogger(ConvertRestImpl.class);
 
 
   public String convert(String token, String fromFormat, String toFormat, String input)
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/files/FileController.java b/rest-api/src/main/java/lcsb/mapviewer/api/files/FileController.java
index 8a95cd8032996ecbeb2bd9c2b2c3257bed0a38b7..fc596cbfbd9106833a0b18dc3349c2c6a4213023 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/files/FileController.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/files/FileController.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.api.files;
 
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.CookieValue;
@@ -24,7 +24,7 @@ public class FileController extends BaseController {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(FileController.class);
+  private Logger logger = LogManager.getLogger(FileController.class);
 
   @Autowired
   private FileRestImpl fileRest;
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/genomics/ReferenceGenomeRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/genomics/ReferenceGenomeRestImpl.java
index bcc6152d61139ae1b1d5d9f3734ad6016864a259..2960bb7cce4abc8f3e9c200554ce67112d84f383 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/genomics/ReferenceGenomeRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/genomics/ReferenceGenomeRestImpl.java
@@ -11,7 +11,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.TreeMap;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -41,7 +41,7 @@ public class ReferenceGenomeRestImpl extends BaseRestImpl {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(ReferenceGenomeRestImpl.class);
+  private Logger logger = LogManager.getLogger(ReferenceGenomeRestImpl.class);
 
   /**
    * Service that manages reference genomes.
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/mesh/MeshController.java b/rest-api/src/main/java/lcsb/mapviewer/api/mesh/MeshController.java
index 01a0398920a46d55d4f40859790108f8050d8b31..14fd2410b8fd577ff554ae5656f33bd3825ad464 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/mesh/MeshController.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/mesh/MeshController.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.api.mesh;
 
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.CookieValue;
@@ -20,7 +20,7 @@ public class MeshController extends BaseController {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(MeshController.class);
+  private Logger logger = LogManager.getLogger(MeshController.class);
 
   @Autowired
   private MeshRestImpl meshRest;
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/mesh/MeshRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/mesh/MeshRestImpl.java
index aaa88ae16563e4e1c0bc89aaeb33aad196ac2340..2cbe5cf51c39aa58f083bf7bdda735b2526a2781 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/mesh/MeshRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/mesh/MeshRestImpl.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.api.mesh;
 import java.util.TreeMap;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -24,7 +24,7 @@ public class MeshRestImpl extends BaseRestImpl {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(MeshRestImpl.class);
+  private Logger logger = LogManager.getLogger(MeshRestImpl.class);
 
   private MeSHParser meSHParser;
 
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/minervanet/MinervaNetController.java b/rest-api/src/main/java/lcsb/mapviewer/api/minervanet/MinervaNetController.java
index ed0b054a9da14866e0f2d5adb08efe8a65baef25..d6d1a46a1b0be4e36624ecf93f5559a9f6c76ab7 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/minervanet/MinervaNetController.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/minervanet/MinervaNetController.java
@@ -12,7 +12,7 @@ import org.apache.http.entity.StringEntity;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClientBuilder;
 import org.apache.http.util.EntityUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -23,7 +23,7 @@ import java.io.IOException;
 @RequestMapping("/minervanet")
 public class MinervaNetController {
 
-  private Logger logger = Logger.getLogger(MinervaNetController.class);
+  private Logger logger = LogManager.getLogger(MinervaNetController.class);
 
   private ServletContext context;
   private IConfigurationService configurationService;
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/plugins/PluginController.java b/rest-api/src/main/java/lcsb/mapviewer/api/plugins/PluginController.java
index c7f87d233288000472b3ffaee5c1aad43a5f13e1..b8da4162f1893438380b268ea1612c29801559e5 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/plugins/PluginController.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/plugins/PluginController.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.api.plugins;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.CookieValue;
@@ -24,7 +24,7 @@ public class PluginController extends BaseController {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(PluginController.class);
+  private Logger logger = LogManager.getLogger(PluginController.class);
 
   @Autowired
   private PluginRestImpl pluginRest;
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectController.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectController.java
index e054daf40e99196b5fd75867b4fec24d03da8e99..7a992ef050baa3eef23e697645153fc98712be3e 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectController.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectController.java
@@ -6,7 +6,7 @@ import java.util.Map;
 
 import javax.servlet.ServletContext;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
@@ -29,7 +29,7 @@ import lcsb.mapviewer.services.SecurityException;
 @RestController
 public class ProjectController extends BaseController {
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(ProjectController.class);
+  private Logger logger = LogManager.getLogger(ProjectController.class);
 
   @Autowired
   private ServletContext context;
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectRestImpl.java
index b16dad75a76f11def0be26bacc4585ab9e8f0c8e..1eccdc9861cc8488b6dc8a19f67a986b053d59bc 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectRestImpl.java
@@ -14,7 +14,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.TreeMap;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.MultiValueMap;
@@ -67,7 +67,7 @@ public class ProjectRestImpl extends BaseRestImpl {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(ProjectRestImpl.class);
+  private Logger logger = LogManager.getLogger(ProjectRestImpl.class);
 
   private PublicationsRestImpl publicationsRestImpl;
 
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/chemicals/ChemicalRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/chemicals/ChemicalRestImpl.java
index a25c4705d9341a353dbee66f194c5b08cdf95c3b..fc0af1cc05803710666220c9301d03eb9aacadc3 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/chemicals/ChemicalRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/chemicals/ChemicalRestImpl.java
@@ -7,7 +7,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.TreeMap;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -37,7 +37,7 @@ public class ChemicalRestImpl extends BaseRestImpl {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(ChemicalRestImpl.class);
+  private Logger logger = LogManager.getLogger(ChemicalRestImpl.class);
 
   private IChemicalService chemicalService;
 
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/comments/CommentRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/comments/CommentRestImpl.java
index 726745ab0e8360717589bbddb443725fdb414dbe..cf686524242156b29e331e0367b67568a1527459 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/comments/CommentRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/comments/CommentRestImpl.java
@@ -8,7 +8,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.TreeMap;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -36,7 +36,7 @@ public class CommentRestImpl extends BaseRestImpl {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(CommentRestImpl.class);
+  private Logger logger = LogManager.getLogger(CommentRestImpl.class);
 
   private ICommentService commentService;
 
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/drugs/DrugRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/drugs/DrugRestImpl.java
index 9d3dec397f67f295f313f64edf5db20defa85f20..e3730a42d3ddfe3ff1de4df08b79125ae35232a1 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/drugs/DrugRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/drugs/DrugRestImpl.java
@@ -7,7 +7,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.TreeMap;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -35,7 +35,7 @@ public class DrugRestImpl extends BaseRestImpl {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(DrugRestImpl.class);
+  private Logger logger = LogManager.getLogger(DrugRestImpl.class);
 
   private IDrugService drugService;
 
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/mirnas/MiRnaRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/mirnas/MiRnaRestImpl.java
index d829a1b63d0f3cd84ca85c7959ac7b9bc18fe7a7..a823842c1aa468dae742516dfd2e37644de9be89 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/mirnas/MiRnaRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/mirnas/MiRnaRestImpl.java
@@ -7,7 +7,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.TreeMap;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -35,7 +35,7 @@ public class MiRnaRestImpl extends BaseRestImpl {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(MiRnaRestImpl.class);
+  private Logger logger = LogManager.getLogger(MiRnaRestImpl.class);
 
   private IMiRNAService miRnaService;
 
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/ModelRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/ModelRestImpl.java
index 133f407c2fb7e45dc48667f19b8a87cdec98e501..c87b2789595983cf4f3386ea5af641f3f4412e86 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/ModelRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/ModelRestImpl.java
@@ -17,7 +17,7 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -76,7 +76,7 @@ public class ModelRestImpl extends BaseRestImpl {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(ModelRestImpl.class);
+  private Logger logger = LogManager.getLogger(ModelRestImpl.class);
 
   @Autowired
   public ModelRestImpl(ILayoutService layoutService) {
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/bioEntities/BioEntitiesRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/bioEntities/BioEntitiesRestImpl.java
index ebd835686028abae4c093ba0f31ed1d79d1c9446..5099fd046382e1f1cababe5982693665a7db9420 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/bioEntities/BioEntitiesRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/bioEntities/BioEntitiesRestImpl.java
@@ -7,7 +7,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -27,7 +27,7 @@ public class BioEntitiesRestImpl extends BaseRestImpl {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(BioEntitiesRestImpl.class);
+  private Logger logger = LogManager.getLogger(BioEntitiesRestImpl.class);
 
   private ISearchService searchService;
 
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/bioEntities/elements/ElementsRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/bioEntities/elements/ElementsRestImpl.java
index b16a777b8dd9b939ba514e1ef16e2de3414c6ad5..97ebe76f994650c673f99caa7aedec5ed63ad75c 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/bioEntities/elements/ElementsRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/bioEntities/elements/ElementsRestImpl.java
@@ -7,7 +7,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.TreeMap;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -45,7 +45,7 @@ public class ElementsRestImpl extends BaseRestImpl {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(ElementsRestImpl.class);
+  private Logger logger = LogManager.getLogger(ElementsRestImpl.class);
 
   public List<Map<String, Object>> getElements(String projectId, String id, String columns, String modelId,
       String token, String type, String includedCompartmentIds, String excludedCompartmentIds)
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/bioEntities/reactions/ReactionsRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/bioEntities/reactions/ReactionsRestImpl.java
index a548d87c23e90f3190c4aab32874b7ff513cb826..e1feb124487c1290fdc8defa31fc1fa0853b99f1 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/bioEntities/reactions/ReactionsRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/bioEntities/reactions/ReactionsRestImpl.java
@@ -12,7 +12,7 @@ import java.util.TreeMap;
 
 import javax.xml.transform.TransformerException;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -42,7 +42,7 @@ public class ReactionsRestImpl extends BaseRestImpl {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(ReactionsRestImpl.class);
+  private Logger logger = LogManager.getLogger(ReactionsRestImpl.class);
 
   public ReactionsRestImpl() {
   }
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/functions/FunctionsRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/functions/FunctionsRestImpl.java
index 15861633c66bf8483ccaa066973af28c9dc7fd78..435a8baf0af597539581f3aeda26541fb1c8d8c0 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/functions/FunctionsRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/functions/FunctionsRestImpl.java
@@ -17,7 +17,7 @@ import javax.xml.transform.stream.StreamResult;
 import javax.xml.xpath.XPathExpressionException;
 
 import org.apache.axis.utils.ByteArrayOutputStream;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.w3c.dom.Document;
@@ -41,7 +41,7 @@ public class FunctionsRestImpl extends BaseRestImpl {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(FunctionsRestImpl.class);
+  private Logger logger = LogManager.getLogger(FunctionsRestImpl.class);
 
   public Map<String, Object> getFunction(String projectId, String modelId, String token, String functionId)
       throws SecurityException, QueryException {
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/parameters/ParametersRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/parameters/ParametersRestImpl.java
index 46660fbed2905c37d2f0b057d87189ae3c504122..5e80baa5ad7e26526a0bd35207e35c4ded57eceb 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/parameters/ParametersRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/parameters/ParametersRestImpl.java
@@ -7,7 +7,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -27,7 +27,7 @@ public class ParametersRestImpl extends BaseRestImpl {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(ParametersRestImpl.class);
+  private Logger logger = LogManager.getLogger(ParametersRestImpl.class);
 
   public Map<String, Object> getParameter(String projectId, String modelId, String token, String parameterId)
       throws SecurityException, QueryException {
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/publications/PublicationsRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/publications/PublicationsRestImpl.java
index 6fa4406ef870369fff71405de599215cbd5874b1..68207a157d76691817c0a142d851872210df1a45 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/publications/PublicationsRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/publications/PublicationsRestImpl.java
@@ -12,7 +12,7 @@ import java.util.SortedMap;
 import java.util.TreeMap;
 
 import org.apache.commons.lang3.math.NumberUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -38,7 +38,7 @@ public class PublicationsRestImpl extends BaseRestImpl {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(PublicationsRestImpl.class);
+  private Logger logger = LogManager.getLogger(PublicationsRestImpl.class);
 
   private ISearchService searchService;
 
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/units/UnitsRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/units/UnitsRestImpl.java
index 45f3c2bb1f71605a20a674e4a3c157ce0da447da..734fd4a81e84ed50f2a7978b4e0089ad40432f4f 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/units/UnitsRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/units/UnitsRestImpl.java
@@ -5,7 +5,7 @@ import java.util.TreeMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -25,7 +25,7 @@ public class UnitsRestImpl extends BaseRestImpl {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(UnitsRestImpl.class);
+  private Logger logger = LogManager.getLogger(UnitsRestImpl.class);
 
   public Map<String, Object> getUnit(String projectId, String modelId, String token, String unitId)
       throws SecurityException, QueryException {
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/overlays/OverlayController.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/overlays/OverlayController.java
index 39de15b080fd6d3f3b38b9c21dbb4387d0cb2072..c4392783624a015433421864b0e59136505f1adb 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/overlays/OverlayController.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/overlays/OverlayController.java
@@ -4,7 +4,7 @@ import java.io.IOException;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
@@ -32,7 +32,7 @@ public class OverlayController extends BaseController {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(OverlayController.class);
+  private Logger logger = LogManager.getLogger(OverlayController.class);
 
   @Autowired
   private OverlayRestImpl overlayRestImp;
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/overlays/OverlayRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/overlays/OverlayRestImpl.java
index 81d61309d3b1403d33b4cab62146ee5437f4fc32..5e4269de5bb75c90536d9db77584ad3eab0aad6b 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/overlays/OverlayRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/overlays/OverlayRestImpl.java
@@ -10,7 +10,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -52,7 +52,7 @@ public class OverlayRestImpl extends BaseRestImpl {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(OverlayRestImpl.class);
+  private Logger logger = LogManager.getLogger(OverlayRestImpl.class);
 
   private ILayoutService layoutService;
 
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/taxonomy/TaxonomyController.java b/rest-api/src/main/java/lcsb/mapviewer/api/taxonomy/TaxonomyController.java
index 246ea8bbf8dd60bbe96628778c76a784e1af7e5b..1bb4d2d5a2b34d688980d7fb571df882e3321faf 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/taxonomy/TaxonomyController.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/taxonomy/TaxonomyController.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.api.taxonomy;
 
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.CookieValue;
@@ -20,7 +20,7 @@ public class TaxonomyController extends BaseController {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(TaxonomyController.class);
+  private Logger logger = LogManager.getLogger(TaxonomyController.class);
 
   @Autowired
   private TaxonomyRestImpl taxonomyRest;
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/taxonomy/TaxonomyRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/taxonomy/TaxonomyRestImpl.java
index d4d65120ecaf0dd2f2241aca8245856d4aae7097..132866d86cab96a8ff3ce84c897e28da47237e24 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/taxonomy/TaxonomyRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/taxonomy/TaxonomyRestImpl.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.api.taxonomy;
 import java.util.Map;
 import java.util.TreeMap;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -23,7 +23,7 @@ public class TaxonomyRestImpl extends BaseRestImpl {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(TaxonomyRestImpl.class);
+  private Logger logger = LogManager.getLogger(TaxonomyRestImpl.class);
 
   private TaxonomyBackend taxonomyParser;
 
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/users/CustomAuthenticationProvider.java b/rest-api/src/main/java/lcsb/mapviewer/api/users/CustomAuthenticationProvider.java
index 84d2db69ce1aa77c926709be8784502f2b7349c4..d9066308e2b848fca43e6c5549b0015aacae0816 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/users/CustomAuthenticationProvider.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/users/CustomAuthenticationProvider.java
@@ -2,7 +2,7 @@ package lcsb.mapviewer.api.users;
 
 import java.util.ArrayList;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.security.authentication.AuthenticationProvider;
 import org.springframework.security.authentication.BadCredentialsException;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
@@ -14,7 +14,7 @@ import lcsb.mapviewer.services.interfaces.IUserService;
 
 @Transactional
 public class CustomAuthenticationProvider implements AuthenticationProvider {
-  Logger logger = Logger.getLogger(CustomAuthenticationProvider.class);
+  Logger logger = LogManager.getLogger(CustomAuthenticationProvider.class);
 
   private IUserService userService;
 
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/users/UserController.java b/rest-api/src/main/java/lcsb/mapviewer/api/users/UserController.java
index 634fd17e2dcf0573cbb6ab4af11512258dd8fd24..cebab469088291e70e79239f1109f53a250895be 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/users/UserController.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/users/UserController.java
@@ -9,7 +9,7 @@ import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 import org.springframework.security.authentication.AuthenticationProvider;
@@ -44,7 +44,7 @@ public class UserController extends BaseController {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(UserController.class);
+  private Logger logger = LogManager.getLogger(UserController.class);
 
   private IUserService userService;
 
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java
index 593a9edf1323a8ddd109d7b59dce3075ad39470b..f6801e21eae86c860228ddc4efa9b7e660e00387 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java
@@ -9,7 +9,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.TreeMap;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -53,7 +53,7 @@ public class UserRestImpl extends BaseRestImpl {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(UserRestImpl.class);
+  private Logger logger = LogManager.getLogger(UserRestImpl.class);
 
   private ILayoutService layoutService;
 
diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/BaseRestImplTest.java b/rest-api/src/test/java/lcsb/mapviewer/api/BaseRestImplTest.java
index 2f6886e47c6472d0b2907a3d5c660a4e69ec0a83..96f751f9e0cade74be49a6d8cdd51604f78948ad 100644
--- a/rest-api/src/test/java/lcsb/mapviewer/api/BaseRestImplTest.java
+++ b/rest-api/src/test/java/lcsb/mapviewer/api/BaseRestImplTest.java
@@ -10,7 +10,7 @@ import static org.mockito.Mockito.CALLS_REAL_METHODS;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.mockito.Mockito;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,7 +23,7 @@ import lcsb.mapviewer.model.map.MiriamType;
 import lcsb.mapviewer.model.user.annotator.AnnotatorData;
 
 public class BaseRestImplTest extends RestTestFunctions {
-  Logger logger = Logger.getLogger(BaseRestImplTest.class);
+  Logger logger = LogManager.getLogger(BaseRestImplTest.class);
 
   @Autowired
   MiriamConnector mc;
diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/RestTestFunctions.java b/rest-api/src/test/java/lcsb/mapviewer/api/RestTestFunctions.java
index 788cca84c00b77cdf7101e15d68bf8dd007a4bb0..372dd10af3a5dc529f1e3717ee52da290db9adce 100644
--- a/rest-api/src/test/java/lcsb/mapviewer/api/RestTestFunctions.java
+++ b/rest-api/src/test/java/lcsb/mapviewer/api/RestTestFunctions.java
@@ -32,7 +32,7 @@ import javax.xml.transform.stream.StreamResult;
 
 import lcsb.mapviewer.converter.*;
 import org.apache.commons.io.FileUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.runner.RunWith;
@@ -71,7 +71,7 @@ import lcsb.mapviewer.services.interfaces.IUserService;
 @WebAppConfiguration
 @RunWith(SpringJUnit4ClassRunner.class)
 public abstract class RestTestFunctions {
-  private Logger logger = Logger.getLogger(RestTestFunctions.class);
+  private Logger logger = LogManager.getLogger(RestTestFunctions.class);
 
   public double EPSILON = 1e-6;
 
diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/configuration/ConfigurationRestImplTest.java b/rest-api/src/test/java/lcsb/mapviewer/api/configuration/ConfigurationRestImplTest.java
index d840f00889a362bb539a4d3abb6b6a7c8aa6338b..1f1cc5314e69fc1288e01939f91bda333d310571 100644
--- a/rest-api/src/test/java/lcsb/mapviewer/api/configuration/ConfigurationRestImplTest.java
+++ b/rest-api/src/test/java/lcsb/mapviewer/api/configuration/ConfigurationRestImplTest.java
@@ -10,7 +10,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -28,7 +28,7 @@ import lcsb.mapviewer.model.user.annotator.BioEntityField;
 public class ConfigurationRestImplTest extends RestTestFunctions {
 
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(ConfigurationRestImplTest.class);
+  private Logger logger = LogManager.getLogger(ConfigurationRestImplTest.class);
 
   @Autowired
   public ConfigurationRestImpl configurationRestImpl;
diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/convert/ConvertRestImplTest.java b/rest-api/src/test/java/lcsb/mapviewer/api/convert/ConvertRestImplTest.java
index 2e59795a7844cf6e5aa7ac136f4ec5d0f8e64f68..e38de922046f1dadc32fcd12eeab5898cf7d1baf 100644
--- a/rest-api/src/test/java/lcsb/mapviewer/api/convert/ConvertRestImplTest.java
+++ b/rest-api/src/test/java/lcsb/mapviewer/api/convert/ConvertRestImplTest.java
@@ -17,7 +17,7 @@ import java.util.regex.Pattern;
 import javax.xml.stream.XMLStreamException;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -36,7 +36,7 @@ import lcsb.mapviewer.services.SecurityException;
 public class ConvertRestImplTest extends RestTestFunctions {
 
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(ConvertRestImplTest.class);
+  private Logger logger = LogManager.getLogger(ConvertRestImplTest.class);
 
   @Autowired
   public ConvertRestImpl convertRestImpl;
diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/genomics/ReferenceGenomeControllerTest.java b/rest-api/src/test/java/lcsb/mapviewer/api/genomics/ReferenceGenomeControllerTest.java
index dbaa99ccaf6e1b0ed32bb51776de61cc352dc08a..fbdff7c48b4cc709f48d7f72b3dd30d18b447b97 100644
--- a/rest-api/src/test/java/lcsb/mapviewer/api/genomics/ReferenceGenomeControllerTest.java
+++ b/rest-api/src/test/java/lcsb/mapviewer/api/genomics/ReferenceGenomeControllerTest.java
@@ -7,7 +7,7 @@ import static org.junit.Assert.fail;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -19,7 +19,7 @@ import lcsb.mapviewer.api.QueryException;
 import lcsb.mapviewer.api.RestTestFunctions;
 
 public class ReferenceGenomeControllerTest extends RestTestFunctions {
-  Logger logger = Logger.getLogger(ReferenceGenomeControllerTest.class);
+  Logger logger = LogManager.getLogger(ReferenceGenomeControllerTest.class);
 
   @Autowired
   public ReferenceGenomeRestImpl referenceGenomeRestImpl;
diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/mesh/MeshRestImplTest.java b/rest-api/src/test/java/lcsb/mapviewer/api/mesh/MeshRestImplTest.java
index dcc0aabb4cac149edc49e3e4fd714c939331b008..8c9b8121f06c1c35fa937cfabc772b59ba9be6aa 100644
--- a/rest-api/src/test/java/lcsb/mapviewer/api/mesh/MeshRestImplTest.java
+++ b/rest-api/src/test/java/lcsb/mapviewer/api/mesh/MeshRestImplTest.java
@@ -5,7 +5,7 @@ import static org.junit.Assert.assertTrue;
 
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
@@ -15,7 +15,7 @@ import lcsb.mapviewer.api.RestTestFunctions;
 
 public class MeshRestImplTest extends RestTestFunctions {
 
-  Logger logger = Logger.getLogger(MeshRestImplTest.class);
+  Logger logger = LogManager.getLogger(MeshRestImplTest.class);
   @Autowired
   MeshRestImpl meshRestImpl;
 
diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/projects/ProjectRestImplTest.java b/rest-api/src/test/java/lcsb/mapviewer/api/projects/ProjectRestImplTest.java
index d853db6f4652502c45bab756cb86694e6c28ef2b..3544fd6e93b0bbc24168c9c2c2dd12c3af1706d1 100644
--- a/rest-api/src/test/java/lcsb/mapviewer/api/projects/ProjectRestImplTest.java
+++ b/rest-api/src/test/java/lcsb/mapviewer/api/projects/ProjectRestImplTest.java
@@ -14,7 +14,7 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mockito;
@@ -41,7 +41,7 @@ import lcsb.mapviewer.services.interfaces.IModelService;
 import lcsb.mapviewer.services.interfaces.IProjectService;
 
 public class ProjectRestImplTest extends RestTestFunctions {
-  Logger logger = Logger.getLogger(ProjectRestImplTest.class);
+  Logger logger = LogManager.getLogger(ProjectRestImplTest.class);
 
   @Autowired
   ProjectRestImpl _projectRestImpl;
diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/projects/chemicals/ChemicalRestImplTest.java b/rest-api/src/test/java/lcsb/mapviewer/api/projects/chemicals/ChemicalRestImplTest.java
index 66d8d2278477654acdf15e572ceacaa349b1b21b..efcc1b4e7c3457bedac85bf395e9613258166b57 100644
--- a/rest-api/src/test/java/lcsb/mapviewer/api/projects/chemicals/ChemicalRestImplTest.java
+++ b/rest-api/src/test/java/lcsb/mapviewer/api/projects/chemicals/ChemicalRestImplTest.java
@@ -7,7 +7,7 @@ import static org.mockito.Matchers.anyString;
 import java.util.ArrayList;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -23,7 +23,7 @@ import lcsb.mapviewer.model.map.model.Model;
 import lcsb.mapviewer.services.interfaces.IModelService;
 
 public class ChemicalRestImplTest extends RestTestFunctions {
-  Logger logger = Logger.getLogger(ChemicalRestImplTest.class);
+  Logger logger = LogManager.getLogger(ChemicalRestImplTest.class);
 
   @Autowired
   private ChemicalRestImpl _drugRestImpl;
diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/projects/drugs/DrugRestImplTest.java b/rest-api/src/test/java/lcsb/mapviewer/api/projects/drugs/DrugRestImplTest.java
index dd5eb15d048d1075e838db11ad95f6b4796b6780..22c24c69a69780d64df5f468a6881d2303670347 100644
--- a/rest-api/src/test/java/lcsb/mapviewer/api/projects/drugs/DrugRestImplTest.java
+++ b/rest-api/src/test/java/lcsb/mapviewer/api/projects/drugs/DrugRestImplTest.java
@@ -7,7 +7,7 @@ import static org.mockito.ArgumentMatchers.anyString;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -23,7 +23,7 @@ import lcsb.mapviewer.services.interfaces.IModelService;
 import lcsb.mapviewer.services.interfaces.IProjectService;
 
 public class DrugRestImplTest extends RestTestFunctions {
-  Logger logger = Logger.getLogger(DrugRestImplTest.class);
+  Logger logger = LogManager.getLogger(DrugRestImplTest.class);
 
   @Autowired
 
diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/projects/mirnas/MiRnaRestImplTest.java b/rest-api/src/test/java/lcsb/mapviewer/api/projects/mirnas/MiRnaRestImplTest.java
index fc19bd9feb59c53f74cb5e575436e83f3cbbcddf..4cfe34f5d645e4dc6c617cc00c3bd347b9f39d99 100644
--- a/rest-api/src/test/java/lcsb/mapviewer/api/projects/mirnas/MiRnaRestImplTest.java
+++ b/rest-api/src/test/java/lcsb/mapviewer/api/projects/mirnas/MiRnaRestImplTest.java
@@ -7,7 +7,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -18,7 +18,7 @@ import lcsb.mapviewer.api.RestTestFunctions;
 import lcsb.mapviewer.model.map.model.Model;
 
 public class MiRnaRestImplTest extends RestTestFunctions {
-  Logger logger = Logger.getLogger(MiRnaRestImplTest.class);
+  Logger logger = LogManager.getLogger(MiRnaRestImplTest.class);
 
   @Autowired
   MiRnaRestImpl _miRnaRestImpl;
diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/bioEntities/BioEntitiesControllerTest.java b/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/bioEntities/BioEntitiesControllerTest.java
index 29e64d174a28381a8941ccd31f599bd8156db7b9..6025167c89d63c5490c3bc688ed09aa5495bba3e 100644
--- a/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/bioEntities/BioEntitiesControllerTest.java
+++ b/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/bioEntities/BioEntitiesControllerTest.java
@@ -9,7 +9,7 @@ import java.awt.geom.Point2D;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -24,7 +24,7 @@ import lcsb.mapviewer.model.map.model.Model;
 import lcsb.mapviewer.services.interfaces.IModelService;
 
 public class BioEntitiesControllerTest extends RestTestFunctions {
-  Logger logger = Logger.getLogger(BioEntitiesControllerTest.class);
+  Logger logger = LogManager.getLogger(BioEntitiesControllerTest.class);
 
   @Autowired
   BioEntitiesRestImpl _bioEntitiesRestImpl;
diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/bioEntities/elements/ElementRestImplTest.java b/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/bioEntities/elements/ElementRestImplTest.java
index c9701d3a83d89132eb7e9c0a6122d2f4e3b7dbaf..14d8e4c5fd8bd22f992e511f29a35eb871f37e32 100644
--- a/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/bioEntities/elements/ElementRestImplTest.java
+++ b/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/bioEntities/elements/ElementRestImplTest.java
@@ -10,7 +10,7 @@ import static org.mockito.Matchers.anyString;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -33,7 +33,7 @@ import lcsb.mapviewer.model.map.species.field.Residue;
 import lcsb.mapviewer.services.interfaces.IModelService;
 
 public class ElementRestImplTest extends RestTestFunctions {
-  Logger logger = Logger.getLogger(RestTestFunctions.class);
+  Logger logger = LogManager.getLogger(RestTestFunctions.class);
 
   @Autowired
   ElementsRestImpl _elementsRestImpl;
diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/functions/FunctionsRestImplTest.java b/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/functions/FunctionsRestImplTest.java
index bada30f74c9d4987c15a07708dc31f0867fb5e90..2d5b428fc7bff7a30b4147a5b93adb66d50305a1 100644
--- a/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/functions/FunctionsRestImplTest.java
+++ b/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/functions/FunctionsRestImplTest.java
@@ -4,14 +4,14 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import lcsb.mapviewer.api.RestTestFunctions;
 
 public class FunctionsRestImplTest extends RestTestFunctions {
-  Logger logger = Logger.getLogger(FunctionsRestImplTest.class);
+  Logger logger = LogManager.getLogger(FunctionsRestImplTest.class);
 
   @Autowired
   FunctionsRestImpl functionRestImpl;
diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/publications/PublicationsRestImplTest.java b/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/publications/PublicationsRestImplTest.java
index bcaff076ad1bdafa4a80642b548f328eaccf03b8..74a6d3886163c81a757aefe5fd1e7cc9b6990d70 100644
--- a/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/publications/PublicationsRestImplTest.java
+++ b/rest-api/src/test/java/lcsb/mapviewer/api/projects/models/publications/PublicationsRestImplTest.java
@@ -13,7 +13,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -31,7 +31,7 @@ import lcsb.mapviewer.model.map.model.Model;
 import lcsb.mapviewer.services.interfaces.IModelService;
 
 public class PublicationsRestImplTest extends RestTestFunctions {
-  Logger logger = Logger.getLogger(PublicationsRestImplTest.class);
+  Logger logger = LogManager.getLogger(PublicationsRestImplTest.class);
 
   @Autowired
   PublicationsRestImpl _projectRestImpl;
diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/users/UserRestImplTest.java b/rest-api/src/test/java/lcsb/mapviewer/api/users/UserRestImplTest.java
index da5cf512d179f441df2a4772dcd46ce6650e8ad9..d40e6dfe5d90c5c0ae18fcd8297f014ea7023c3a 100644
--- a/rest-api/src/test/java/lcsb/mapviewer/api/users/UserRestImplTest.java
+++ b/rest-api/src/test/java/lcsb/mapviewer/api/users/UserRestImplTest.java
@@ -12,7 +12,7 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -40,7 +40,7 @@ import lcsb.mapviewer.model.user.annotator.AnnotatorParameter;
 import lcsb.mapviewer.model.user.annotator.BioEntityField;
 
 public class UserRestImplTest extends RestTestFunctions {
-  Logger logger = Logger.getLogger(UserRestImplTest.class);
+  Logger logger = LogManager.getLogger(UserRestImplTest.class);
 
   @Autowired
   UserRestImpl userRestImpl;
diff --git a/rest-api/src/test/resources/log4j.properties b/rest-api/src/test/resources/log4j.properties
deleted file mode 100644
index e3cf076f834ff213be76567ff8498531f0b1d474..0000000000000000000000000000000000000000
--- a/rest-api/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-#Set root logger 's level and its appender to an appender called CONSOLE which is defined below.
-log4j.rootLogger=info, CONSOLE
-
-#Set the behavior of the CONSOLE appender 
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-#log4j.appender.CONSOLE.layout.ConversionPattern=%m%n
-
-
-#Set the behavior of the FILE appender 
-log4j.appender.R=org.apache.log4j.FileAppender
-log4j.appender.R.File=${catalina.home}/logs/MapViewer.log
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-
-
-log4j.logger.org.springframework=warn
-log4j.logger.org.hibernate=warn
-log4j.logger.lcsb=debug
-log4j.logger.lcsb.mapviewer.annotation.cache=info
-log4j.logger.lcsb.mapviewer.persist=info
-
-#There are plenty of useless warnings in jsbml library
-log4j.logger.org.sbml.jsbml=error
\ No newline at end of file
diff --git a/rest-api/src/test/resources/log4j2.properties b/rest-api/src/test/resources/log4j2.properties
new file mode 100644
index 0000000000000000000000000000000000000000..5dd72d2bc71a90d1fb119ae215c0d760a60aad71
--- /dev/null
+++ b/rest-api/src/test/resources/log4j2.properties
@@ -0,0 +1,29 @@
+rootLogger.level = INFO
+appenders = console
+
+appender.console.type = Console
+appender.console.name = STDOUT
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %d %5p [%t] (%F:%L) - %m%n
+
+rootLogger.appenderRefs = console
+
+rootLogger.appenderRef.console.ref = STDOUT
+
+logger.minerva.name = lcsb
+logger.minerva.level = debug
+logger.minerva-persist.name = lcsb.mapviewer.persist.DbUtils
+logger.minerva-persist.level = info
+logger.minerva-cache.name = lcsb.mapviewer.annotation.cache
+logger.minerva-cache.level = info
+
+
+logger.springframework.name = org.springframework
+logger.springframework.level = warn
+
+logger.hibernate.name = org.hibernate
+logger.hibernate.level = warn
+
+#There are plenty of useless warnings in jsbml library
+logger.jsbml.name = org.sbml.jsbml
+logger.jsbml.level = error
diff --git a/service/pom.xml b/service/pom.xml
index 75451d1c90ee25a8299299dc683468a5dcf77e75..e662095eb22815892693c2e1380af7e44815993f 100644
--- a/service/pom.xml
+++ b/service/pom.xml
@@ -71,12 +71,16 @@
 			<version>1.0</version>
 		</dependency>
 
-
-		<!-- Log4J -->
+		<!-- Log4J2-->
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-api</artifactId>
+			<version>${log4j2.version}</version>
+		</dependency>
 		<dependency>
-			<groupId>log4j</groupId>
-			<artifactId>log4j</artifactId>
-			<version>${log4j.version}</version>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-core</artifactId>
+			<version>${log4j2.version}</version>
 		</dependency>
 
 		<!-- Spring -->
diff --git a/service/src/main/java/lcsb/mapviewer/services/impl/CommentService.java b/service/src/main/java/lcsb/mapviewer/services/impl/CommentService.java
index 8ec6eab07ec3c5226cdc839eee44aa35df416d27..f6619db8ec533d0bde1a6cbdb1a2ee609e7e5a50 100644
--- a/service/src/main/java/lcsb/mapviewer/services/impl/CommentService.java
+++ b/service/src/main/java/lcsb/mapviewer/services/impl/CommentService.java
@@ -8,7 +8,7 @@ import java.util.Map;
 
 import javax.mail.MessagingException;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -53,7 +53,7 @@ public class CommentService implements ICommentService {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(CommentService.class);
+  private static Logger logger = LogManager.getLogger(CommentService.class);
 
   /**
    * Data access object fir comments.
diff --git a/service/src/main/java/lcsb/mapviewer/services/impl/ConfigurationService.java b/service/src/main/java/lcsb/mapviewer/services/impl/ConfigurationService.java
index 14141d92d176a3c143ba7d0921c799c5d63f60ac..3156a0fa8ab86aff07fda752c34684e0fee1b20a 100644
--- a/service/src/main/java/lcsb/mapviewer/services/impl/ConfigurationService.java
+++ b/service/src/main/java/lcsb/mapviewer/services/impl/ConfigurationService.java
@@ -5,7 +5,7 @@ import java.util.List;
 
 import org.apache.commons.lang3.EnumUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -40,7 +40,7 @@ public class ConfigurationService implements IConfigurationService {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private final Logger logger = Logger.getLogger(ConfigurationService.class);
+  private final Logger logger = LogManager.getLogger(ConfigurationService.class);
 
   /**
    * Data access object for configuration parameters.
diff --git a/service/src/main/java/lcsb/mapviewer/services/impl/LayoutService.java b/service/src/main/java/lcsb/mapviewer/services/impl/LayoutService.java
index f3379ed425efc9d7d5684a84c8f0068b3dd5091f..3d69391137e630106ee5cc9024ed1d3f95aba6f2 100644
--- a/service/src/main/java/lcsb/mapviewer/services/impl/LayoutService.java
+++ b/service/src/main/java/lcsb/mapviewer/services/impl/LayoutService.java
@@ -12,7 +12,7 @@ import java.util.Map;
 import javax.mail.MessagingException;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -80,7 +80,7 @@ public class LayoutService implements ILayoutService {
     /**
      * Default class logger.
      */
-    private Logger logger = Logger.getLogger(LayoutService.class);
+    private Logger logger = LogManager.getLogger(LayoutService.class);
 
     /**
      * Layout data access object.
diff --git a/service/src/main/java/lcsb/mapviewer/services/impl/LdapService.java b/service/src/main/java/lcsb/mapviewer/services/impl/LdapService.java
index d79290f7e871868dbe4ef725d70932498ff02def..c43c1e9c897ba67b5483ae7d4cb81133daaed217 100644
--- a/service/src/main/java/lcsb/mapviewer/services/impl/LdapService.java
+++ b/service/src/main/java/lcsb/mapviewer/services/impl/LdapService.java
@@ -4,7 +4,7 @@ import java.security.GeneralSecurityException;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -31,7 +31,7 @@ import lcsb.mapviewer.services.interfaces.ILdapService;
 @Transactional
 @Service
 public class LdapService implements ILdapService {
-  Logger logger = Logger.getLogger(LdapService.class);
+  Logger logger = LogManager.getLogger(LdapService.class);
 
   private IConfigurationService configurationService;
 
diff --git a/service/src/main/java/lcsb/mapviewer/services/impl/ModelService.java b/service/src/main/java/lcsb/mapviewer/services/impl/ModelService.java
index 5913a68aada441b931e14177786eea5bb6228877..7292c38af916cc0d5912be2a772d668ca11c63df 100644
--- a/service/src/main/java/lcsb/mapviewer/services/impl/ModelService.java
+++ b/service/src/main/java/lcsb/mapviewer/services/impl/ModelService.java
@@ -7,7 +7,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -50,7 +50,7 @@ public class ModelService implements IModelService {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(ModelService.class);
+  private Logger logger = LogManager.getLogger(ModelService.class);
 
   /**
    * List of cached models.
diff --git a/service/src/main/java/lcsb/mapviewer/services/impl/ProjectService.java b/service/src/main/java/lcsb/mapviewer/services/impl/ProjectService.java
index 7e1d6149ef7c781c6e07c7b6189be8fe00518653..558df90d6793be0ce5a53f00fb97221d5eb20b60 100644
--- a/service/src/main/java/lcsb/mapviewer/services/impl/ProjectService.java
+++ b/service/src/main/java/lcsb/mapviewer/services/impl/ProjectService.java
@@ -19,7 +19,7 @@ import javax.mail.MessagingException;
 
 import lcsb.mapviewer.converter.*;
 import org.apache.commons.io.FileUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.hibernate.HibernateException;
 import org.primefaces.model.DefaultTreeNode;
 import org.primefaces.model.TreeNode;
@@ -39,8 +39,9 @@ import lcsb.mapviewer.commands.CommandExecutionException;
 import lcsb.mapviewer.commands.CopyCommand;
 import lcsb.mapviewer.commands.CreateHierarchyCommand;
 import lcsb.mapviewer.commands.SetFixedHierarchyLevelCommand;
-import lcsb.mapviewer.common.EventStorageLoggerAppender;
+
 import lcsb.mapviewer.common.IProgressUpdater;
+import lcsb.mapviewer.common.MinervaLoggerAppender;
 import lcsb.mapviewer.common.Pair;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
 import lcsb.mapviewer.converter.graphics.DrawingException;
@@ -112,7 +113,7 @@ public class ProjectService implements IProjectService {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(ProjectService.class);
+  private Logger logger = LogManager.getLogger(ProjectService.class);
 
   /**
    * Data access object for projects.
@@ -750,9 +751,8 @@ public class ProjectService implements IProjectService {
         }
         waitForInitialData.countDown();
         double[] outOfMemoryBuffer;
-        EventStorageLoggerAppender appender = new EventStorageLoggerAppender();
+        MinervaLoggerAppender appender = MinervaLoggerAppender.createAppender();
         try {
-          Logger.getRootLogger().addAppender(appender);
           logger.debug("Running: " + params.getProjectId() + "; " + params.getProjectFile());
           outOfMemoryBuffer = new double[OUT_OF_MEMORY_BACKUP_BUFFER_SIZE];
           for (int i = 0; i < OUT_OF_MEMORY_BACKUP_BUFFER_SIZE; i++) {
@@ -786,7 +786,7 @@ public class ProjectService implements IProjectService {
           if (params.isAnalyzeAnnotations()) {
             analyzeAnnotations(originalModel, params);
           }
-          Logger.getRootLogger().removeAppender(appender);
+          MinervaLoggerAppender.unregisterLogEventStorage(appender);
           project.addLoggingInfo(appender);
 
           if (params.isCacheModel()) {
@@ -823,7 +823,7 @@ public class ProjectService implements IProjectService {
             // close the transaction for this thread
             dbUtils.closeSessionForCurrentThread();
           }
-          Logger.getRootLogger().removeAppender(appender);
+          MinervaLoggerAppender.unregisterLogEventStorage(appender);
         }
       }
 
diff --git a/service/src/main/java/lcsb/mapviewer/services/impl/ReferenceGenomeService.java b/service/src/main/java/lcsb/mapviewer/services/impl/ReferenceGenomeService.java
index 6cda60e80fc0f0ba000c73aef3d36f6a301315b1..23f3ed544f506e4d1c852b2f6e98f429df8b5fd0 100644
--- a/service/src/main/java/lcsb/mapviewer/services/impl/ReferenceGenomeService.java
+++ b/service/src/main/java/lcsb/mapviewer/services/impl/ReferenceGenomeService.java
@@ -4,7 +4,7 @@ import java.io.IOException;
 import java.net.URISyntaxException;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -37,7 +37,7 @@ public class ReferenceGenomeService implements IReferenceGenomeService {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(ReferenceGenomeService.class);
+  private Logger logger = LogManager.getLogger(ReferenceGenomeService.class);
 
   /**
    * Class responsible for connection to {@link ReferenceGenomeType#UCSC}
diff --git a/service/src/main/java/lcsb/mapviewer/services/impl/SearchService.java b/service/src/main/java/lcsb/mapviewer/services/impl/SearchService.java
index 644174249ffc1d44fc8be3b0f17e4ea7f1a7280f..9a215f67bfe90c2ea18abed74c9a1e02dddd0881 100644
--- a/service/src/main/java/lcsb/mapviewer/services/impl/SearchService.java
+++ b/service/src/main/java/lcsb/mapviewer/services/impl/SearchService.java
@@ -11,7 +11,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -77,7 +77,7 @@ public class SearchService implements ISearchService {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(SearchService.class.getName());
+  private static Logger logger = LogManager.getLogger(SearchService.class.getName());
 
   /**
    * Data access object for models.
diff --git a/service/src/main/java/lcsb/mapviewer/services/impl/UserService.java b/service/src/main/java/lcsb/mapviewer/services/impl/UserService.java
index 997a06f4555160b1650f65118248ba8ea2bac3eb..32e79c2591aa5957a4b364a5cf4c48867c1675d2 100644
--- a/service/src/main/java/lcsb/mapviewer/services/impl/UserService.java
+++ b/service/src/main/java/lcsb/mapviewer/services/impl/UserService.java
@@ -11,7 +11,7 @@ import java.util.Map;
 import java.util.Random;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.core.authority.AuthorityUtils;
 import org.springframework.security.core.session.SessionInformation;
@@ -57,7 +57,7 @@ public class UserService implements IUserService {
   /**
    * Default class logger.
    */
-  private static Logger logger = Logger.getLogger(UserService.class);
+  private static Logger logger = LogManager.getLogger(UserService.class);
 
   /**
    * Data access object for users.
diff --git a/service/src/main/java/lcsb/mapviewer/services/overlay/AnnotatedObjectTreeRow.java b/service/src/main/java/lcsb/mapviewer/services/overlay/AnnotatedObjectTreeRow.java
index 75eaeb1fb2f71119eb57d0c0d91efb66a343a513..684fee085047926b668c8890e8e91636da8700ab 100644
--- a/service/src/main/java/lcsb/mapviewer/services/overlay/AnnotatedObjectTreeRow.java
+++ b/service/src/main/java/lcsb/mapviewer/services/overlay/AnnotatedObjectTreeRow.java
@@ -6,7 +6,7 @@ import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.annotation.services.annotators.ElementAnnotator;
 import lcsb.mapviewer.model.map.MiriamType;
@@ -31,7 +31,7 @@ public class AnnotatedObjectTreeRow implements Serializable {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final transient Logger			logger											= Logger.getLogger(AnnotatedObjectTreeRow.class);
+	private final transient Logger			logger											= LogManager.getLogger(AnnotatedObjectTreeRow.class);
 
 	/**
 	 * Name of the class.
diff --git a/service/src/main/java/lcsb/mapviewer/services/search/ElementMatcher.java b/service/src/main/java/lcsb/mapviewer/services/search/ElementMatcher.java
index 25e33b912ed6db91549602e2d235cb14b7d72486..6754f40b15ef79fc9c6da8bb5fe02282d3215a9d 100644
--- a/service/src/main/java/lcsb/mapviewer/services/search/ElementMatcher.java
+++ b/service/src/main/java/lcsb/mapviewer/services/search/ElementMatcher.java
@@ -4,7 +4,7 @@ import java.util.Collection;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.annotation.data.Target;
 import lcsb.mapviewer.common.exception.InvalidArgumentException;
@@ -23,7 +23,7 @@ public class ElementMatcher {
   /**
    * Default class logger.
    */
-  private final Logger logger = Logger.getLogger(ElementMatcher.class);
+  private final Logger logger = LogManager.getLogger(ElementMatcher.class);
 
   public boolean elementMatch(Target target, BioEntity element) {
     MiriamData targetAnnotation = target.getSource();
diff --git a/service/src/main/java/lcsb/mapviewer/services/search/chemical/ChemicalService.java b/service/src/main/java/lcsb/mapviewer/services/search/chemical/ChemicalService.java
index c64c27825cf22595dbbe3ec8de0a1ff621d557c4..89c40a2b70dfe3d30249c62d221f1786cd54c99e 100644
--- a/service/src/main/java/lcsb/mapviewer/services/search/chemical/ChemicalService.java
+++ b/service/src/main/java/lcsb/mapviewer/services/search/chemical/ChemicalService.java
@@ -12,7 +12,7 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -48,7 +48,7 @@ public class ChemicalService extends DbSearchService implements IChemicalService
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(ChemicalService.class);
+  private Logger logger = LogManager.getLogger(ChemicalService.class);
 
   /**
    * List of chemicals pairs of id and name.
diff --git a/service/src/main/java/lcsb/mapviewer/services/search/drug/DrugService.java b/service/src/main/java/lcsb/mapviewer/services/search/drug/DrugService.java
index af680065bee15cff9a415671b649f1d7828f0407..2f7d3146cd2b09dee2a46d8cf622761af2274d34 100644
--- a/service/src/main/java/lcsb/mapviewer/services/search/drug/DrugService.java
+++ b/service/src/main/java/lcsb/mapviewer/services/search/drug/DrugService.java
@@ -7,7 +7,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -47,7 +47,7 @@ public class DrugService extends DbSearchService implements IDrugService {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(DrugService.class);
+  private Logger logger = LogManager.getLogger(DrugService.class);
 
   /**
    * Access point and parser for the online drugbank database.
diff --git a/service/src/main/java/lcsb/mapviewer/services/search/mirna/MiRNAService.java b/service/src/main/java/lcsb/mapviewer/services/search/mirna/MiRNAService.java
index 67b670d25c880a6bb854078242ca273087642cab..57dd229dded21a7f63a3e28baa2a0b8e86401c90 100644
--- a/service/src/main/java/lcsb/mapviewer/services/search/mirna/MiRNAService.java
+++ b/service/src/main/java/lcsb/mapviewer/services/search/mirna/MiRNAService.java
@@ -7,7 +7,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -42,7 +42,7 @@ public class MiRNAService extends DbSearchService implements IMiRNAService {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(MiRNAService.class);
+  private Logger logger = LogManager.getLogger(MiRNAService.class);
 
   /**
    * Access point and parser for the online ctd database.
diff --git a/service/src/main/java/lcsb/mapviewer/services/utils/ColorSchemaReader.java b/service/src/main/java/lcsb/mapviewer/services/utils/ColorSchemaReader.java
index b2085821ea21ee251891e3e1cb978229ae6d7e22..deb15c6ab0824a9b344e8b523a6b3328981374c1 100644
--- a/service/src/main/java/lcsb/mapviewer/services/utils/ColorSchemaReader.java
+++ b/service/src/main/java/lcsb/mapviewer/services/utils/ColorSchemaReader.java
@@ -16,7 +16,7 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.annotation.services.MiriamConnector;
 import lcsb.mapviewer.common.Configuration;
@@ -72,7 +72,7 @@ public class ColorSchemaReader {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(ColorSchemaReader.class);
+  private Logger logger = LogManager.getLogger(ColorSchemaReader.class);
 
   /**
    * Objects that manipulates {@link MiriamData}.
diff --git a/service/src/main/java/lcsb/mapviewer/services/utils/ColorSchemaXlsxReader.java b/service/src/main/java/lcsb/mapviewer/services/utils/ColorSchemaXlsxReader.java
index 1437bd37958dfe69f61f9d6886aae3127730de7e..31e288e1c6c1630f615948cbf02f291275e57f83 100644
--- a/service/src/main/java/lcsb/mapviewer/services/utils/ColorSchemaXlsxReader.java
+++ b/service/src/main/java/lcsb/mapviewer/services/utils/ColorSchemaXlsxReader.java
@@ -12,7 +12,7 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.commons.io.FilenameUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.CellStyle;
@@ -46,7 +46,7 @@ public class ColorSchemaXlsxReader {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private Logger logger = Logger.getLogger(ColorSchemaXlsxReader.class);
+  private Logger logger = LogManager.getLogger(ColorSchemaXlsxReader.class);
 
   /**
    * @param fileName
diff --git a/service/src/main/java/lcsb/mapviewer/services/utils/EmailSender.java b/service/src/main/java/lcsb/mapviewer/services/utils/EmailSender.java
index 0e7d0cfce8c6ea34605c81f9283a7e5b40f18ac0..8d0b6f9d768edf9216a8005cab6472981f784374 100644
--- a/service/src/main/java/lcsb/mapviewer/services/utils/EmailSender.java
+++ b/service/src/main/java/lcsb/mapviewer/services/utils/EmailSender.java
@@ -24,7 +24,7 @@ import javax.mail.internet.MimeBodyPart;
 import javax.mail.internet.MimeMessage;
 import javax.mail.internet.MimeMultipart;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import com.sun.mail.smtp.SMTPTransport;
 
@@ -50,7 +50,7 @@ public class EmailSender {
   /**
    * Default class logger.
    */
-  private Logger logger = Logger.getLogger(EmailSender.class);
+  private Logger logger = LogManager.getLogger(EmailSender.class);
 
   /**
    * String (usually email address) that should appear in sender field of the
diff --git a/service/src/main/java/lcsb/mapviewer/services/utils/SearchIndexer.java b/service/src/main/java/lcsb/mapviewer/services/utils/SearchIndexer.java
index 9089a3fd4b12867ff9ea5655bcd6e2822dfdb5d8..b3224f71f457148a12687942544828d2e5f5dce0 100644
--- a/service/src/main/java/lcsb/mapviewer/services/utils/SearchIndexer.java
+++ b/service/src/main/java/lcsb/mapviewer/services/utils/SearchIndexer.java
@@ -6,7 +6,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.model.map.SearchIndex;
 import lcsb.mapviewer.model.map.species.Element;
@@ -54,7 +54,7 @@ public class SearchIndexer {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private Logger					 logger																				= Logger.getLogger(SearchIndexer.class);
+	private Logger					 logger																				= LogManager.getLogger(SearchIndexer.class);
 
 	/**
 	 * This method create list of indexes for an alias. Right now every index is
diff --git a/service/src/test/java/lcsb/mapviewer/services/ServiceTestFunctions.java b/service/src/test/java/lcsb/mapviewer/services/ServiceTestFunctions.java
index 430e360744bac2e5f16eeb1e6d5a416f0b8adf5a..ebc58a093a5a415e6c5082c8002581354261bc07 100644
--- a/service/src/test/java/lcsb/mapviewer/services/ServiceTestFunctions.java
+++ b/service/src/test/java/lcsb/mapviewer/services/ServiceTestFunctions.java
@@ -28,8 +28,9 @@ import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 
-import org.apache.log4j.Logger;
-import org.apache.log4j.spi.LoggingEvent;
+import org.apache.logging.log4j.*;
+import org.apache.logging.log4j.core.LogEvent;
+
 import org.junit.After;
 import org.junit.Before;
 import org.junit.runner.RunWith;
@@ -49,7 +50,8 @@ import lcsb.mapviewer.annotation.services.ChEMBLParser;
 import lcsb.mapviewer.annotation.services.DrugbankHTMLParser;
 import lcsb.mapviewer.annotation.services.ModelAnnotator;
 import lcsb.mapviewer.annotation.services.annotators.BiocompendiumAnnotator;
-import lcsb.mapviewer.common.EventStorageLoggerAppender;
+
+import lcsb.mapviewer.common.MinervaLoggerAppender;
 import lcsb.mapviewer.common.exception.InvalidXmlSchemaException;
 import lcsb.mapviewer.converter.ConverterParams;
 import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser;
@@ -83,7 +85,7 @@ import lcsb.mapviewer.services.search.drug.IDrugService;
 @ContextConfiguration(classes = SpringServiceTestConfig.class)
 @RunWith(SpringJUnit4ClassRunner.class)
 public abstract class ServiceTestFunctions {
-  private Logger logger = Logger.getLogger(ServiceTestFunctions.class);
+  private Logger logger = LogManager.getLogger(ServiceTestFunctions.class);
 
   @Autowired
   protected ChEMBLParser chemblParser;
@@ -171,30 +173,29 @@ public abstract class ServiceTestFunctions {
   private User user;
   protected User user2 = null;
 
-  private EventStorageLoggerAppender appender;
+  private MinervaLoggerAppender appender;
 
   @Before
   public final void _setUp() throws Exception {
-    Logger.getRootLogger().removeAppender(appender);
-    appender = new EventStorageLoggerAppender();
-    Logger.getRootLogger().addAppender(appender);
+    MinervaLoggerAppender.unregisterLogEventStorage(appender);
+    appender = MinervaLoggerAppender.createAppender();
     dbUtils.setAutoFlush(false);
   }
 
   @After
   public final void _tearDown() throws Exception {
-    Logger.getRootLogger().removeAppender(appender);
+    MinervaLoggerAppender.unregisterLogEventStorage(appender);
   }
 
-  protected List<LoggingEvent> getWarnings() {
+  protected List<LogEvent> getWarnings() {
     return appender.getWarnings();
   }
 
-  protected List<LoggingEvent> getErrors() {
+  protected List<LogEvent> getErrors() {
     return appender.getErrors();
   }
 
-  protected List<LoggingEvent> getInfos() {
+  protected List<LogEvent> getInfos() {
     return appender.getInfos();
   }
 
diff --git a/service/src/test/java/lcsb/mapviewer/services/impl/CommentServiceTest.java b/service/src/test/java/lcsb/mapviewer/services/impl/CommentServiceTest.java
index 12b0b03d3774278f6834f557154745b671783925..1f2d2644ce98d50a053a22d635f12f65fa21cbbb 100644
--- a/service/src/test/java/lcsb/mapviewer/services/impl/CommentServiceTest.java
+++ b/service/src/test/java/lcsb/mapviewer/services/impl/CommentServiceTest.java
@@ -8,7 +8,7 @@ import java.awt.geom.Point2D;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -23,7 +23,7 @@ import lcsb.mapviewer.services.ServiceTestFunctions;
 
 @Rollback(true)
 public class CommentServiceTest extends ServiceTestFunctions {
-  static Logger logger = Logger.getLogger(CommentServiceTest.class);
+  static Logger logger = LogManager.getLogger(CommentServiceTest.class);
   Model model;
   Project project;
   Element alias;
diff --git a/service/src/test/java/lcsb/mapviewer/services/impl/ConfigurationServiceTest.java b/service/src/test/java/lcsb/mapviewer/services/impl/ConfigurationServiceTest.java
index 1c3030f262ea08e6c82be19296fe807168501d70..63ba122efb63a1062df83c188a23fef912374452 100644
--- a/service/src/test/java/lcsb/mapviewer/services/impl/ConfigurationServiceTest.java
+++ b/service/src/test/java/lcsb/mapviewer/services/impl/ConfigurationServiceTest.java
@@ -7,7 +7,7 @@ import static org.junit.Assert.assertTrue;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -23,7 +23,7 @@ import lcsb.mapviewer.services.ServiceTestFunctions;
 
 @Rollback(true)
 public class ConfigurationServiceTest extends ServiceTestFunctions {
-  Logger logger = Logger.getLogger(ConfigurationServiceTest.class);
+  Logger logger = LogManager.getLogger(ConfigurationServiceTest.class);
 
   @Before
   public void setUp() throws Exception {
diff --git a/service/src/test/java/lcsb/mapviewer/services/impl/LayoutServiceTest.java b/service/src/test/java/lcsb/mapviewer/services/impl/LayoutServiceTest.java
index 9ad513fadea982850514981d4fe808f7d11bab2b..2f9b320135d077d196f1419e57dac0f92f2a411c 100644
--- a/service/src/test/java/lcsb/mapviewer/services/impl/LayoutServiceTest.java
+++ b/service/src/test/java/lcsb/mapviewer/services/impl/LayoutServiceTest.java
@@ -16,7 +16,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -51,7 +51,7 @@ import lcsb.mapviewer.services.utils.EmailSender;
 import lcsb.mapviewer.services.utils.data.ColorSchemaColumn;
 
 public class LayoutServiceTest extends ServiceTestFunctions {
-  Logger logger = Logger.getLogger(LayoutServiceTest.class);
+  Logger logger = LogManager.getLogger(LayoutServiceTest.class);
 
   Project project = null;
   Model model = null;
diff --git a/service/src/test/java/lcsb/mapviewer/services/impl/LdapServiceTest.java b/service/src/test/java/lcsb/mapviewer/services/impl/LdapServiceTest.java
index aed2843e3766f38ca14aae5e39fdf98cf698a0b9..28593943587a78ca5431ac8db0e683843c9b7d6b 100644
--- a/service/src/test/java/lcsb/mapviewer/services/impl/LdapServiceTest.java
+++ b/service/src/test/java/lcsb/mapviewer/services/impl/LdapServiceTest.java
@@ -7,7 +7,7 @@ import static org.junit.Assert.assertTrue;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -27,7 +27,7 @@ import lcsb.mapviewer.services.UserDTO;
 
 @Rollback(true)
 public class LdapServiceTest extends ServiceTestFunctions {
-  static Logger logger = Logger.getLogger(LdapServiceTest.class);
+  static Logger logger = LogManager.getLogger(LdapServiceTest.class);
 
   LdapService ldapService;
 
diff --git a/service/src/test/java/lcsb/mapviewer/services/impl/ProjectServiceTest.java b/service/src/test/java/lcsb/mapviewer/services/impl/ProjectServiceTest.java
index 704426978d1de1b56d4aa6ed15b9d551b536ac60..34b527ccd414a4b825cda3838a6e863e23c7c316 100644
--- a/service/src/test/java/lcsb/mapviewer/services/impl/ProjectServiceTest.java
+++ b/service/src/test/java/lcsb/mapviewer/services/impl/ProjectServiceTest.java
@@ -24,7 +24,7 @@ import java.util.Set;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.apache.poi.util.IOUtils;
 import org.junit.After;
 import org.junit.Before;
@@ -77,7 +77,7 @@ import lcsb.mapviewer.services.utils.data.BuildInLayout;
 
 @Rollback(true)
 public class ProjectServiceTest extends ServiceTestFunctions {
-  Logger logger = Logger.getLogger(ProjectServiceTest.class);
+  Logger logger = LogManager.getLogger(ProjectServiceTest.class);
 
   ZipEntryFileFactory zefFactory = new ZipEntryFileFactory();
 
diff --git a/service/src/test/java/lcsb/mapviewer/services/impl/SearchServiceTest.java b/service/src/test/java/lcsb/mapviewer/services/impl/SearchServiceTest.java
index ae7f23488487418bf0f226d0a0c94ea303cb8eb3..69146289c20d00bbbe4455295771f4059ced8e3e 100644
--- a/service/src/test/java/lcsb/mapviewer/services/impl/SearchServiceTest.java
+++ b/service/src/test/java/lcsb/mapviewer/services/impl/SearchServiceTest.java
@@ -12,7 +12,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -45,7 +45,7 @@ import lcsb.mapviewer.services.ServiceTestFunctions;
 import lcsb.mapviewer.services.utils.SearchIndexer;
 
 public class SearchServiceTest extends ServiceTestFunctions {
-  static Logger logger = Logger.getLogger(SearchServiceTest.class);
+  static Logger logger = LogManager.getLogger(SearchServiceTest.class);
 
   SearchIndexer indexer = new SearchIndexer();
 
diff --git a/service/src/test/java/lcsb/mapviewer/services/impl/UserServiceTest.java b/service/src/test/java/lcsb/mapviewer/services/impl/UserServiceTest.java
index 8b7269e44d022b15336cd5f185fa853614b68b58..bec5b8d11b154652c06a3a13b0fa993d9ac037cd 100644
--- a/service/src/test/java/lcsb/mapviewer/services/impl/UserServiceTest.java
+++ b/service/src/test/java/lcsb/mapviewer/services/impl/UserServiceTest.java
@@ -7,7 +7,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -32,7 +32,7 @@ import lcsb.mapviewer.services.interfaces.ILdapService;
 
 @Rollback(true)
 public class UserServiceTest extends ServiceTestFunctions {
-  static Logger logger = Logger.getLogger(UserServiceTest.class);
+  static Logger logger = LogManager.getLogger(UserServiceTest.class);
 
   User user;
 
diff --git a/service/src/test/java/lcsb/mapviewer/services/search/chemical/ChemicalServiceTest.java b/service/src/test/java/lcsb/mapviewer/services/search/chemical/ChemicalServiceTest.java
index ea455887639afe1a8a89d4097632b053932f5259..130d11205b1fb6b430c38a438a83f0e0c96de62e 100644
--- a/service/src/test/java/lcsb/mapviewer/services/search/chemical/ChemicalServiceTest.java
+++ b/service/src/test/java/lcsb/mapviewer/services/search/chemical/ChemicalServiceTest.java
@@ -7,7 +7,7 @@ import static org.junit.Assert.assertTrue;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -21,7 +21,7 @@ import lcsb.mapviewer.services.ServiceTestFunctions;
 import lcsb.mapviewer.services.search.DbSearchCriteria;
 
 public class ChemicalServiceTest extends ServiceTestFunctions {
-  Logger logger = Logger.getLogger(ChemicalServiceTest.class);
+  Logger logger = LogManager.getLogger(ChemicalServiceTest.class);
 
   @Before
   public void setUp() throws Exception {
diff --git a/service/src/test/java/lcsb/mapviewer/services/search/drug/DrugServiceTest.java b/service/src/test/java/lcsb/mapviewer/services/search/drug/DrugServiceTest.java
index c93d8dd442397f807d16878070eea849be05fb61..0b23329eb18251ac1befdd522b7673a10af125f8 100644
--- a/service/src/test/java/lcsb/mapviewer/services/search/drug/DrugServiceTest.java
+++ b/service/src/test/java/lcsb/mapviewer/services/search/drug/DrugServiceTest.java
@@ -11,7 +11,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -33,7 +33,7 @@ import lcsb.mapviewer.services.ServiceTestFunctions;
 import lcsb.mapviewer.services.search.DbSearchCriteria;
 
 public class DrugServiceTest extends ServiceTestFunctions {
-  Logger logger = Logger.getLogger(DrugServiceTest.class);
+  Logger logger = LogManager.getLogger(DrugServiceTest.class);
 
   @Autowired
   ElementDao elementDao;
diff --git a/service/src/test/java/lcsb/mapviewer/services/search/mirna/MiRNAServiceTest.java b/service/src/test/java/lcsb/mapviewer/services/search/mirna/MiRNAServiceTest.java
index 8049360871938ac2b52d8a06ec9bb079782c7446..6a8c621463d417d2a1b3c56b7cf2b2142871a633 100644
--- a/service/src/test/java/lcsb/mapviewer/services/search/mirna/MiRNAServiceTest.java
+++ b/service/src/test/java/lcsb/mapviewer/services/search/mirna/MiRNAServiceTest.java
@@ -1,6 +1,6 @@
 package lcsb.mapviewer.services.search.mirna;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -13,7 +13,7 @@ import lcsb.mapviewer.services.ServiceTestFunctions;
 import lcsb.mapviewer.services.search.mirna.IMiRNAService;
 
 public class MiRNAServiceTest extends ServiceTestFunctions {
-  Logger logger = Logger.getLogger(MiRNAServiceTest.class);
+  Logger logger = LogManager.getLogger(MiRNAServiceTest.class);
 
   @Autowired
   protected IMiRNAService miRNAService;
diff --git a/service/src/test/java/lcsb/mapviewer/services/utils/ColorSchemaReaderTest.java b/service/src/test/java/lcsb/mapviewer/services/utils/ColorSchemaReaderTest.java
index 8f38ead287c120fe84ebf7d78c168c6328a9d200..d2a89adac64d2c41e57ae662448a0d11c1a32b22 100644
--- a/service/src/test/java/lcsb/mapviewer/services/utils/ColorSchemaReaderTest.java
+++ b/service/src/test/java/lcsb/mapviewer/services/utils/ColorSchemaReaderTest.java
@@ -18,7 +18,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.commons.io.output.ByteArrayOutputStream;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -35,7 +35,7 @@ import lcsb.mapviewer.model.map.model.Model;
 import lcsb.mapviewer.services.ServiceTestFunctions;
 
 public class ColorSchemaReaderTest extends ServiceTestFunctions {
-  Logger logger = Logger.getLogger(ColorSchemaReaderTest.class);
+  Logger logger = LogManager.getLogger(ColorSchemaReaderTest.class);
 
   @Before
   public void setUp() throws Exception {
diff --git a/service/src/test/java/lcsb/mapviewer/services/utils/ColorSchemaReaderXlsTest.java b/service/src/test/java/lcsb/mapviewer/services/utils/ColorSchemaReaderXlsTest.java
index 6b4bab84fda41ca22866345b0e765cce9d73b03f..99fab38053e49baa7b262368bff1eb8d7fe5df29 100644
--- a/service/src/test/java/lcsb/mapviewer/services/utils/ColorSchemaReaderXlsTest.java
+++ b/service/src/test/java/lcsb/mapviewer/services/utils/ColorSchemaReaderXlsTest.java
@@ -7,7 +7,7 @@ import static org.junit.Assert.fail;
 import java.awt.Color;
 import java.util.Collection;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -18,7 +18,7 @@ import lcsb.mapviewer.services.ServiceTestFunctions;
 import lcsb.mapviewer.services.utils.ColorSchemaXlsxReader;
 
 public class ColorSchemaReaderXlsTest extends ServiceTestFunctions {
-	Logger	logger	= Logger.getLogger(ColorSchemaReaderXlsTest.class);
+	Logger	logger	= LogManager.getLogger(ColorSchemaReaderXlsTest.class);
 
 	@Before
 	public void setUp() throws Exception {
diff --git a/service/src/test/java/lcsb/mapviewer/services/utils/ColorSchemaReaderXlsxTest.java b/service/src/test/java/lcsb/mapviewer/services/utils/ColorSchemaReaderXlsxTest.java
index 42be532cd5686ea5a9001579f92dead8caa0bd05..f3ddd5e06e3a8510203b3e5e113f0a0c82df3284 100644
--- a/service/src/test/java/lcsb/mapviewer/services/utils/ColorSchemaReaderXlsxTest.java
+++ b/service/src/test/java/lcsb/mapviewer/services/utils/ColorSchemaReaderXlsxTest.java
@@ -7,7 +7,7 @@ import static org.junit.Assert.fail;
 import java.awt.Color;
 import java.util.Collection;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -18,7 +18,7 @@ import lcsb.mapviewer.services.ServiceTestFunctions;
 import lcsb.mapviewer.services.utils.ColorSchemaXlsxReader;
 
 public class ColorSchemaReaderXlsxTest extends ServiceTestFunctions {
-	Logger	logger	= Logger.getLogger(ColorSchemaReaderXlsxTest.class);
+	Logger	logger	= LogManager.getLogger(ColorSchemaReaderXlsxTest.class);
 
 	@Before
 	public void setUp() throws Exception {
diff --git a/service/src/test/java/lcsb/mapviewer/services/utils/EmailSenderTest.java b/service/src/test/java/lcsb/mapviewer/services/utils/EmailSenderTest.java
index 78051d1aa7d0eef8b5674c8e402ec70272cfe994..c07e2e322a4b08e70dc03059e6f7e1eef5f9efee 100644
--- a/service/src/test/java/lcsb/mapviewer/services/utils/EmailSenderTest.java
+++ b/service/src/test/java/lcsb/mapviewer/services/utils/EmailSenderTest.java
@@ -3,7 +3,7 @@ package lcsb.mapviewer.services.utils;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
@@ -12,7 +12,7 @@ import org.junit.Test;
 import lcsb.mapviewer.services.ServiceTestFunctions;
 
 public class EmailSenderTest extends ServiceTestFunctions {
-  Logger logger = Logger.getLogger(EmailSenderTest.class);
+  Logger logger = LogManager.getLogger(EmailSenderTest.class);
 
   @Before
   public void setUp() throws Exception {
diff --git a/service/src/test/resources/log4j.properties b/service/src/test/resources/log4j.properties
deleted file mode 100644
index 148f957870899e27c1c8aa017635befdb7ee6e36..0000000000000000000000000000000000000000
--- a/service/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-#Set root logger 's level and its appender to an appender called CONSOLE which is defined below.
-log4j.rootLogger=info, CONSOLE
-
-#Set the behavior of the CONSOLE appender 
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-#log4j.appender.CONSOLE.layout.ConversionPattern=%m%n
-
-
-#Set the behavior of the FILE appender 
-log4j.appender.R=org.apache.log4j.FileAppender
-log4j.appender.R.File=${catalina.home}/logs/MapViewer.log
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-
-
-log4j.logger.org.springframework=warn
-log4j.logger.org.hibernate=warn
-log4j.logger.lcsb=debug
-log4j.logger.lcsb.mapviewer.model=info
-log4j.logger.lcsb.mapviewer.persist=info
-log4j.logger.lcsb.mapviewer.annotation.cache.PermanentDatabaseLevelCache=info
\ No newline at end of file
diff --git a/service/src/test/resources/log4j2.properties b/service/src/test/resources/log4j2.properties
new file mode 100644
index 0000000000000000000000000000000000000000..b5eaa32682d177bf266eb6ed4831b4e8f4b9135d
--- /dev/null
+++ b/service/src/test/resources/log4j2.properties
@@ -0,0 +1,25 @@
+rootLogger.level = INFO
+appenders = console
+
+appender.console.type = Console
+appender.console.name = STDOUT
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %d %5p [%t] (%F:%L) - %m%n
+
+rootLogger.appenderRefs = console
+
+rootLogger.appenderRef.console.ref = STDOUT
+
+logger.minerva.name = lcsb
+logger.minerva.level = debug
+logger.minerva-persist.name = lcsb.mapviewer.persist.DbUtils
+logger.minerva-persist.level = info
+logger.minerva-cache.name = lcsb.mapviewer.annotation.cache
+logger.minerva-cache.level = info
+
+
+logger.springframework.name = org.springframework
+logger.springframework.level = warn
+
+logger.hibernate.name = org.hibernate
+logger.hibernate.level = warn
diff --git a/web/pom.xml b/web/pom.xml
index c8e08da45bea6225805381b5d5040afe20d4f762..79a945a8e40352b96d004be743c8b56f19d01112 100644
--- a/web/pom.xml
+++ b/web/pom.xml
@@ -107,10 +107,16 @@
 			<version>${springframework.version}</version>
 		</dependency>
 
+		<!-- Log4J2-->
 		<dependency>
-			<groupId>log4j</groupId>
-			<artifactId>log4j</artifactId>
-			<version>${log4j.version}</version>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-api</artifactId>
+			<version>${log4j2.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-core</artifactId>
+			<version>${log4j2.version}</version>
 		</dependency>
 
 		<dependency>
diff --git a/web/src/main/java/lcsb/mapviewer/web/bean/utils/ApiAccessControlFilter.java b/web/src/main/java/lcsb/mapviewer/web/bean/utils/ApiAccessControlFilter.java
index c09fdbea38caab127cab317cf67ac6ba2bfde026..fd7f2317a5ffc12b6f2332bbdc5ee41fa0ee9dcb 100644
--- a/web/src/main/java/lcsb/mapviewer/web/bean/utils/ApiAccessControlFilter.java
+++ b/web/src/main/java/lcsb/mapviewer/web/bean/utils/ApiAccessControlFilter.java
@@ -10,7 +10,7 @@ import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * This filter disables caching for API queries.
@@ -23,7 +23,7 @@ public class ApiAccessControlFilter implements Filter {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private final Logger logger = Logger.getLogger(ApiAccessControlFilter.class);
+  private final Logger logger = LogManager.getLogger(ApiAccessControlFilter.class);
 
   @Override
   public void init(FilterConfig config) throws ServletException {
diff --git a/web/src/main/java/lcsb/mapviewer/web/bean/utils/CssContentTypeFilter.java b/web/src/main/java/lcsb/mapviewer/web/bean/utils/CssContentTypeFilter.java
index 344a3d9a457d1afeed86fbbd71d5a1c6997dc343..0694ff89a8f6887078cd63f09b960b742b47b4a8 100644
--- a/web/src/main/java/lcsb/mapviewer/web/bean/utils/CssContentTypeFilter.java
+++ b/web/src/main/java/lcsb/mapviewer/web/bean/utils/CssContentTypeFilter.java
@@ -13,7 +13,7 @@ import javax.servlet.http.HttpServletResponse;
 
 import lcsb.mapviewer.common.MimeType;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * This class sets content type for requests accessing css files. We have to do
@@ -28,7 +28,7 @@ public class CssContentTypeFilter implements Filter {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private final Logger logger = Logger.getLogger(CssContentTypeFilter.class);
+	private final Logger logger = LogManager.getLogger(CssContentTypeFilter.class);
 
 	@Override
 	public void init(FilterConfig config) throws ServletException {
diff --git a/web/src/main/java/lcsb/mapviewer/web/bean/utils/CustomFilter.java b/web/src/main/java/lcsb/mapviewer/web/bean/utils/CustomFilter.java
index 01a704098d04745e4e00a0253af472d4d07c0682..8178a620f502bb90b40888e9f3809f21acd60785 100644
--- a/web/src/main/java/lcsb/mapviewer/web/bean/utils/CustomFilter.java
+++ b/web/src/main/java/lcsb/mapviewer/web/bean/utils/CustomFilter.java
@@ -11,7 +11,7 @@ import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * This class should be used only for debug purpose. It wrapps
@@ -26,7 +26,7 @@ public class CustomFilter implements Filter {
 	/**
 	 * Default class logger.
 	 */
-	private final Logger logger = Logger.getLogger(CustomFilter.class);
+	private final Logger logger = LogManager.getLogger(CustomFilter.class);
 
 	@Override
 	public void init(FilterConfig config) throws ServletException {
diff --git a/web/src/main/java/lcsb/mapviewer/web/bean/utils/CustomHttpServletResponseWrapper.java b/web/src/main/java/lcsb/mapviewer/web/bean/utils/CustomHttpServletResponseWrapper.java
index 68051191766455c6aa04d301afc1b6556b76af3b..e106aabe15ac852dc4c81cea41d0079e441cdb5c 100644
--- a/web/src/main/java/lcsb/mapviewer/web/bean/utils/CustomHttpServletResponseWrapper.java
+++ b/web/src/main/java/lcsb/mapviewer/web/bean/utils/CustomHttpServletResponseWrapper.java
@@ -9,7 +9,7 @@ import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponseWrapper;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * This class should be used only for debugging. It's a wrapper to standard JSF
@@ -27,7 +27,7 @@ public class CustomHttpServletResponseWrapper extends HttpServletResponseWrapper
 	/**
 	 * Default class logger.
 	 */
-	private Logger logger = Logger.getLogger(CustomHttpServletResponseWrapper.class);
+	private Logger logger = LogManager.getLogger(CustomHttpServletResponseWrapper.class);
 
 	/**
 	 * Default constructor.
diff --git a/web/src/main/java/lcsb/mapviewer/web/bean/utils/JsfAjaxAccessControlAllowFilter.java b/web/src/main/java/lcsb/mapviewer/web/bean/utils/JsfAjaxAccessControlAllowFilter.java
index 9651247cb62961fdd12acad57ab12249ae2f04ce..4c6b8506a810bf7bdcb0c5c1bd2fded0580793c5 100644
--- a/web/src/main/java/lcsb/mapviewer/web/bean/utils/JsfAjaxAccessControlAllowFilter.java
+++ b/web/src/main/java/lcsb/mapviewer/web/bean/utils/JsfAjaxAccessControlAllowFilter.java
@@ -11,7 +11,7 @@ import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Configuration;
 
@@ -27,7 +27,7 @@ public class JsfAjaxAccessControlAllowFilter implements Filter {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private final Logger logger = Logger.getLogger(JsfAjaxAccessControlAllowFilter.class);
+  private final Logger logger = LogManager.getLogger(JsfAjaxAccessControlAllowFilter.class);
 
   @Override
   public void init(FilterConfig config) throws ServletException {
diff --git a/web/src/main/java/lcsb/mapviewer/web/bean/utils/PrimefacesUtils.java b/web/src/main/java/lcsb/mapviewer/web/bean/utils/PrimefacesUtils.java
index 1b1deb0050422125c9b1f269e27120ce9744bb06..432a33a9f3fd31f364a956aa3ec237d479e2d14e 100644
--- a/web/src/main/java/lcsb/mapviewer/web/bean/utils/PrimefacesUtils.java
+++ b/web/src/main/java/lcsb/mapviewer/web/bean/utils/PrimefacesUtils.java
@@ -9,7 +9,7 @@ import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
 import javax.servlet.http.HttpServletRequest;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.primefaces.context.RequestContext;
 import org.springframework.web.jsf.FacesContextUtils;
 
@@ -23,7 +23,7 @@ public class PrimefacesUtils implements IPrimefacesUtils {
 	/**
 	 * Default class logger.
 	 */
-	private final transient Logger	logger	= Logger.getLogger(PrimefacesUtils.class);
+	private final transient Logger	logger	= LogManager.getLogger(PrimefacesUtils.class);
 
 	/**
 	 * Default constructor.
diff --git a/web/src/main/java/lcsb/mapviewer/web/bean/utils/StartupBean.java b/web/src/main/java/lcsb/mapviewer/web/bean/utils/StartupBean.java
index 7a6b35b3c4d271603c1c81cd477627e179526af7..036ec9b255c26afde777b6c21d973e98adb01ead 100644
--- a/web/src/main/java/lcsb/mapviewer/web/bean/utils/StartupBean.java
+++ b/web/src/main/java/lcsb/mapviewer/web/bean/utils/StartupBean.java
@@ -10,8 +10,8 @@ import javax.annotation.PostConstruct;
 import javax.faces.context.FacesContext;
 import javax.servlet.ServletContext;
 
-import org.apache.log4j.Logger;
-import org.apache.log4j.PropertyConfigurator;
+import org.apache.logging.log4j.*;
+import org.apache.logging.log4j.core.LoggerContext;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -38,7 +38,7 @@ public class StartupBean {
   /**
    * Default class logger.
    */
-  private final transient Logger logger = Logger.getLogger(StartupBean.class);
+  private final transient Logger logger = LogManager.getLogger(StartupBean.class);
 
   /**
    * Dao used to access information about projects.
@@ -93,11 +93,8 @@ public class StartupBean {
     File file = new File(filename);
     if (file.exists()) {
       try {
-        Properties props = new Properties();
-        InputStream configStream = new FileInputStream(file);
-        props.load(configStream);
-        configStream.close();
-        PropertyConfigurator.configure(props);
+        LoggerContext context = (org.apache.logging.log4j.core.LoggerContext) LogManager.getContext(false);
+        context.setConfigLocation(file.toURI());
         logger.info("log4j  configuration loaded from: " + filename);
       } catch (Exception e) {
         logger.error("Problem with loading log4j configuration: " + filename);
diff --git a/web/src/main/java/lcsb/mapviewer/web/bean/utils/VersionResourceHandler.java b/web/src/main/java/lcsb/mapviewer/web/bean/utils/VersionResourceHandler.java
index 1fc05f965b40a59115f0bc6759b91a3ab8882958..4a192a29b8a89dd8533311416a1e7cbe88aabd91 100644
--- a/web/src/main/java/lcsb/mapviewer/web/bean/utils/VersionResourceHandler.java
+++ b/web/src/main/java/lcsb/mapviewer/web/bean/utils/VersionResourceHandler.java
@@ -7,7 +7,7 @@ import javax.faces.application.ResourceWrapper;
 
 import lcsb.mapviewer.services.impl.ConfigurationService;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * This class is used to provide url for jsf resource files with "?v=version"
@@ -21,7 +21,7 @@ public class VersionResourceHandler extends ResourceHandlerWrapper {
 	/**
 	 * Default class logger.
 	 */
-	private final Logger		logger	= Logger.getLogger(VersionResourceHandler.class);
+	private final Logger		logger	= LogManager.getLogger(VersionResourceHandler.class);
 
 	/**
 	 * SVN version of the system.
diff --git a/web/src/main/java/lcsb/mapviewer/web/bean/utils/XFrameAccessControlFilter.java b/web/src/main/java/lcsb/mapviewer/web/bean/utils/XFrameAccessControlFilter.java
index 84efad3f1d1585f901579da84d9904a6e3300045..f401b29f6f76fcab3e08afafa275cb72c053ecd1 100644
--- a/web/src/main/java/lcsb/mapviewer/web/bean/utils/XFrameAccessControlFilter.java
+++ b/web/src/main/java/lcsb/mapviewer/web/bean/utils/XFrameAccessControlFilter.java
@@ -12,7 +12,7 @@ import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.validator.routines.UrlValidator;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 import lcsb.mapviewer.common.Configuration;
 
@@ -27,7 +27,7 @@ public class XFrameAccessControlFilter implements Filter {
    * Default class logger.
    */
   @SuppressWarnings("unused")
-  private final Logger logger = Logger.getLogger(XFrameAccessControlFilter.class);
+  private final Logger logger = LogManager.getLogger(XFrameAccessControlFilter.class);
 
   @Override
   public void init(FilterConfig config) throws ServletException {
diff --git a/web/src/main/java/lcsb/mapviewer/web/config/WebAppInitializer.java b/web/src/main/java/lcsb/mapviewer/web/config/WebAppInitializer.java
index cde1173065dbf35895da25efe6341549c8b720d3..8e85c08bc3c6ca3e96167b45f859da1eafc6c91a 100644
--- a/web/src/main/java/lcsb/mapviewer/web/config/WebAppInitializer.java
+++ b/web/src/main/java/lcsb/mapviewer/web/config/WebAppInitializer.java
@@ -1,6 +1,7 @@
 package lcsb.mapviewer.web.config;
 
 import java.io.InputStream;
+import java.net.URL;
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Properties;
@@ -11,8 +12,8 @@ import javax.servlet.ServletRegistration;
 import javax.servlet.SessionCookieConfig;
 import javax.servlet.SessionTrackingMode;
 
-import org.apache.log4j.Logger;
-import org.apache.log4j.PropertyConfigurator;
+import org.apache.logging.log4j.*;
+import org.apache.logging.log4j.core.LoggerContext;
 import org.primefaces.webapp.filter.FileUploadFilter;
 import org.springframework.security.web.session.HttpSessionEventPublisher;
 import org.springframework.web.WebApplicationInitializer;
@@ -30,7 +31,7 @@ import lcsb.mapviewer.web.bean.utils.JsfAjaxAccessControlAllowFilter;
 import lcsb.mapviewer.web.bean.utils.XFrameAccessControlFilter;
 
 public class WebAppInitializer implements WebApplicationInitializer {
-  Logger logger = Logger.getLogger(WebAppInitializer.class);
+  Logger logger = LogManager.getLogger(WebAppInitializer.class);
 
   @Override
   public void onStartup(ServletContext container) {
@@ -58,13 +59,11 @@ public class WebAppInitializer implements WebApplicationInitializer {
     assert container.setInitParameter("javax.faces.DEFAULT_SUFFIX", ".xhtml");
     assert container.setInitParameter("javax.faces.FACELETS_SKIP_COMMENTS", "true");
 
-    String file = "/WEB-INF/resources/log4j.properties";
+    String file = "/WEB-INF/resources/log4j2.properties";
     try {
-      Properties props = new Properties();
-      InputStream configStream = container.getResourceAsStream(file);
-      props.load(configStream);
-      configStream.close();
-      PropertyConfigurator.configure(props);
+      URL configStream = container.getResource(file);
+      LoggerContext context = (org.apache.logging.log4j.core.LoggerContext) LogManager.getContext(false);
+      context.setConfigLocation(configStream.toURI());
     } catch (Exception e) {
       logger.error("Problem with loading log4j configuration: " + file);
     }
diff --git a/web/src/main/java/lcsb/mapviewer/web/converter/MiriamTypeConverter.java b/web/src/main/java/lcsb/mapviewer/web/converter/MiriamTypeConverter.java
index f32ef9d90c8c4bf9a382da241108e86c7d297e86..6e2ec9290cc22d60d2c0dc8cc901b533396e8425 100644
--- a/web/src/main/java/lcsb/mapviewer/web/converter/MiriamTypeConverter.java
+++ b/web/src/main/java/lcsb/mapviewer/web/converter/MiriamTypeConverter.java
@@ -10,7 +10,7 @@ import javax.faces.context.FacesContext;
 import javax.faces.convert.Converter;
 import javax.faces.convert.FacesConverter;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 
 /**
  * Converter used for {@link lcsb.mapviewer.model.map.MiriamType} in primefaces
@@ -26,7 +26,7 @@ public class MiriamTypeConverter implements Converter {
 	 * Default class logger.
 	 */
 	@SuppressWarnings("unused")
-	private Logger										 logger		= Logger.getLogger(MiriamTypeConverter.class);
+	private Logger										 logger		= LogManager.getLogger(MiriamTypeConverter.class);
 
 	/**
 	 * Map between custom uuid and MiriamType object.
diff --git a/web/src/main/java/lcsb/mapviewer/web/security/MvUsernamePasswordAuthenticationFilter.java b/web/src/main/java/lcsb/mapviewer/web/security/MvUsernamePasswordAuthenticationFilter.java
index 19e8ee277fb767aad395035ecbae2c81974ac049..abad045009d020e5917c7ff44b1c4c31b9866c44 100644
--- a/web/src/main/java/lcsb/mapviewer/web/security/MvUsernamePasswordAuthenticationFilter.java
+++ b/web/src/main/java/lcsb/mapviewer/web/security/MvUsernamePasswordAuthenticationFilter.java
@@ -7,7 +7,7 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.*;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.AuthenticationException;
 import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
@@ -23,7 +23,7 @@ public class MvUsernamePasswordAuthenticationFilter extends UsernamePasswordAuth
 	/**
 	 * Default class logger.
 	 */
-	private static Logger	logger	= Logger.getLogger(MvUsernamePasswordAuthenticationFilter.class);
+	private static Logger	logger	= LogManager.getLogger(MvUsernamePasswordAuthenticationFilter.class);
 
 	@Override
 	protected void successfulAuthentication(HttpServletRequest request, HttpServletResponse response, FilterChain chain, Authentication authResult)
diff --git a/web/src/main/webapp/WEB-INF/resources/log4j.properties b/web/src/main/webapp/WEB-INF/resources/log4j.properties
deleted file mode 100644
index cce0380c86937576a3e43eb5c8567cfe25a20c0f..0000000000000000000000000000000000000000
--- a/web/src/main/webapp/WEB-INF/resources/log4j.properties
+++ /dev/null
@@ -1,38 +0,0 @@
-#Set root logger 's level and its appender to an appender called CONSOLE which is defined below.
-log4j.rootLogger=info, CONSOLE, R
-
-#Set the behavior of the CONSOLE appender 
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-#log4j.appender.CONSOLE.layout.ConversionPattern=%m%n
-
-
-#Set the behavior of the FILE appender 
-log4j.appender.R=org.apache.log4j.FileAppender
-log4j.appender.R.File=${catalina.base}/logs/minerva.txt
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-
-
-log4j.logger.org.springframework=warn
-log4j.logger.org.hibernate=warn
-log4j.logger.lcsb=debug
-log4j.logger.lcsb.mapviewer.annotation.cache=info
-log4j.logger.lcsb.mapviewer.persist.DbUtils=info
-
-log4j.logger.lcsb.mapviewer.converter.graphics.geometry=info
-
-log4j.logger.lcsb.mapviewer.db.model.map.ElementComparator=warn
-log4j.logger.lcsb.mapviewer.common.comparator=info
-log4j.logger.lcsb.mapviewer.db.model.map.layout.alias.AliasComparator=warn
-log4j.logger.lcsb.mapviewer.db.model.map.ModelComparator=warn
-log4j.logger.lcsb.mapviewer.db.model.map.species.SpeciesComparator=warn
-log4j.logger.lcsb.mapviewer.db.model.map.layout.alias.SpeciesAliasComparator=warn
-log4j.logger.lcsb.mapviewer.db.model.map.reaction.ReactionComparator=warn
-log4j.logger.lcsb.mapviewer.db.model.map.species.ProteinComparator=warn
-log4j.logger.lcsb.mapviewer.db.model.map.layout.alias.ComplexAliasComparator=warn
-log4j.logger.lcsb.mapviewer.db.model.map.Element=info
-
-#Silence miriam debug logs 
-log4j.logger.uk.ac.ebi.miriam.lib=warn
diff --git a/web/src/main/webapp/WEB-INF/resources/log4j2.properties b/web/src/main/webapp/WEB-INF/resources/log4j2.properties
new file mode 100644
index 0000000000000000000000000000000000000000..b5eaa32682d177bf266eb6ed4831b4e8f4b9135d
--- /dev/null
+++ b/web/src/main/webapp/WEB-INF/resources/log4j2.properties
@@ -0,0 +1,25 @@
+rootLogger.level = INFO
+appenders = console
+
+appender.console.type = Console
+appender.console.name = STDOUT
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %d %5p [%t] (%F:%L) - %m%n
+
+rootLogger.appenderRefs = console
+
+rootLogger.appenderRef.console.ref = STDOUT
+
+logger.minerva.name = lcsb
+logger.minerva.level = debug
+logger.minerva-persist.name = lcsb.mapviewer.persist.DbUtils
+logger.minerva-persist.level = info
+logger.minerva-cache.name = lcsb.mapviewer.annotation.cache
+logger.minerva-cache.level = info
+
+
+logger.springframework.name = org.springframework
+logger.springframework.level = warn
+
+logger.hibernate.name = org.hibernate
+logger.hibernate.level = warn
diff --git a/web/src/test/resources/log4j.properties b/web/src/test/resources/log4j.properties
deleted file mode 100644
index c36f0e8f0f2d1bc6becf9ac41a23e8ecd76ef358..0000000000000000000000000000000000000000
--- a/web/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-#Set root logger 's level and its appender to an appender called CONSOLE which is defined below.
-log4j.rootLogger=info, CONSOLE
-
-#Set the behavior of the CONSOLE appender 
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-#log4j.appender.CONSOLE.layout.ConversionPattern=%m%n
-
-
-#Set the behavior of the FILE appender 
-log4j.appender.R=org.apache.log4j.FileAppender
-log4j.appender.R.File=${catalina.home}/logs/MapViewer.log
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
-
-
-log4j.logger.org.springframework=warn
-log4j.logger.org.hibernate=warn
-log4j.logger.lcsb=debug
-log4j.logger.lcsb.mapviewer.annotation.cache=info
-log4j.logger.lcsb.mapviewer.persist=info
\ No newline at end of file
diff --git a/web/src/test/resources/log4j2.properties b/web/src/test/resources/log4j2.properties
new file mode 100644
index 0000000000000000000000000000000000000000..b5eaa32682d177bf266eb6ed4831b4e8f4b9135d
--- /dev/null
+++ b/web/src/test/resources/log4j2.properties
@@ -0,0 +1,25 @@
+rootLogger.level = INFO
+appenders = console
+
+appender.console.type = Console
+appender.console.name = STDOUT
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %d %5p [%t] (%F:%L) - %m%n
+
+rootLogger.appenderRefs = console
+
+rootLogger.appenderRef.console.ref = STDOUT
+
+logger.minerva.name = lcsb
+logger.minerva.level = debug
+logger.minerva-persist.name = lcsb.mapviewer.persist.DbUtils
+logger.minerva-persist.level = info
+logger.minerva-cache.name = lcsb.mapviewer.annotation.cache
+logger.minerva-cache.level = info
+
+
+logger.springframework.name = org.springframework
+logger.springframework.level = warn
+
+logger.hibernate.name = org.hibernate
+logger.hibernate.level = warn