diff --git a/src/main/java/de/ids_mannheim/korap/handlers/BatchBuilder.java b/src/main/java/de/ids_mannheim/korap/handlers/BatchBuilder.java
index 17f3616..b7ee677 100644
--- a/src/main/java/de/ids_mannheim/korap/handlers/BatchBuilder.java
+++ b/src/main/java/de/ids_mannheim/korap/handlers/BatchBuilder.java
@@ -21,7 +21,7 @@
     private static final int SMALL_MEDIUM_BATCH = 6;
     private static final int MEDIUM_BATCH = 8;
     private static final int LARGE_BATCH = 12;
-    private Logger log = KustvaktLogger.initiate(BatchBuilder.class);
+    private Logger log = KustvaktLogger.getLogger(BatchBuilder.class);
 
     private JdbcOperations operations;
 
diff --git a/src/main/java/de/ids_mannheim/korap/handlers/ResourceDao.java b/src/main/java/de/ids_mannheim/korap/handlers/ResourceDao.java
index 0d0183e..62c5839 100644
--- a/src/main/java/de/ids_mannheim/korap/handlers/ResourceDao.java
+++ b/src/main/java/de/ids_mannheim/korap/handlers/ResourceDao.java
@@ -29,7 +29,7 @@
 public class ResourceDao<T extends KustvaktResource>
         implements ResourceOperationIface<T> {
 
-    private static Logger log = KustvaktLogger.initiate(ResourceDao.class);
+    private static Logger log = KustvaktLogger.getLogger(ResourceDao.class);
     protected final NamedParameterJdbcTemplate jdbcTemplate;
 
     public ResourceDao(PersistenceClient client) {
diff --git a/src/main/java/de/ids_mannheim/korap/security/auth/KustvaktAuthenticationManager.java b/src/main/java/de/ids_mannheim/korap/security/auth/KustvaktAuthenticationManager.java
index 50c208c..444852d 100644
--- a/src/main/java/de/ids_mannheim/korap/security/auth/KustvaktAuthenticationManager.java
+++ b/src/main/java/de/ids_mannheim/korap/security/auth/KustvaktAuthenticationManager.java
@@ -34,7 +34,7 @@
 
     private static String KEY = "kustvakt:key";
     private static Logger jlog = KustvaktLogger
-            .initiate(KustvaktAuthenticationManager.class);
+            .getLogger(KustvaktAuthenticationManager.class);
     private EncryptionIface crypto;
     private EntityHandlerIface entHandler;
     private AuditingIface auditing;
diff --git a/src/main/java/de/ids_mannheim/korap/security/auth/LoginCounter.java b/src/main/java/de/ids_mannheim/korap/security/auth/LoginCounter.java
index c38bc02..62bf939 100644
--- a/src/main/java/de/ids_mannheim/korap/security/auth/LoginCounter.java
+++ b/src/main/java/de/ids_mannheim/korap/security/auth/LoginCounter.java
@@ -15,7 +15,7 @@
  */
 public class LoginCounter {
 
-    private static Logger jlog = KustvaktLogger.initiate(LoginCounter.class);
+    private static Logger jlog = KustvaktLogger.getLogger(LoginCounter.class);
     private final Map<String, Long[]> failedLogins;
     private KustvaktConfiguration config;
 
diff --git a/src/main/java/de/ids_mannheim/korap/security/auth/SessionAuthentication.java b/src/main/java/de/ids_mannheim/korap/security/auth/SessionAuthentication.java
index 8bed26c..c02e2c8 100644
--- a/src/main/java/de/ids_mannheim/korap/security/auth/SessionAuthentication.java
+++ b/src/main/java/de/ids_mannheim/korap/security/auth/SessionAuthentication.java
@@ -26,7 +26,7 @@
 public class SessionAuthentication implements AuthenticationIface {
 
     private static Logger jlog = KustvaktLogger
-            .initiate(SessionAuthentication.class);
+            .getLogger(SessionAuthentication.class);
     private SessionFactory sessions;
     private ScheduledThreadPoolExecutor scheduled;
     private EncryptionIface crypto;
diff --git a/src/main/java/de/ids_mannheim/korap/security/auth/SessionFactory.java b/src/main/java/de/ids_mannheim/korap/security/auth/SessionFactory.java
index 26e316a..b663479 100644
--- a/src/main/java/de/ids_mannheim/korap/security/auth/SessionFactory.java
+++ b/src/main/java/de/ids_mannheim/korap/security/auth/SessionFactory.java
@@ -27,7 +27,7 @@
  */
 public class SessionFactory implements Runnable {
 
-    private static Logger jlog = KustvaktLogger.initiate(SessionFactory.class);
+    private static Logger jlog = KustvaktLogger.getLogger(SessionFactory.class);
 
     private final ConcurrentMap<String, TokenContext> sessionsObject;
     private final ConcurrentMap<String, DateTime> timeCheck;
diff --git a/src/main/java/de/ids_mannheim/korap/user/KorAPUser.java b/src/main/java/de/ids_mannheim/korap/user/KorAPUser.java
index ab1c164..5a003eb 100644
--- a/src/main/java/de/ids_mannheim/korap/user/KorAPUser.java
+++ b/src/main/java/de/ids_mannheim/korap/user/KorAPUser.java
@@ -8,7 +8,7 @@
 @Getter
 @Setter
 public class KorAPUser extends User {
-    private static Logger jlog = KustvaktLogger.initiate(KorAPUser.class);
+    private static Logger jlog = KustvaktLogger.getLogger(KorAPUser.class);
     private static final long serialVersionUID = -7108308497625884584L;
 
     //fixme: accountlink to shibboleth account
diff --git a/src/main/java/de/ids_mannheim/korap/utils/StringUtils.java b/src/main/java/de/ids_mannheim/korap/utils/StringUtils.java
index ac2c1a7..410f006 100644
--- a/src/main/java/de/ids_mannheim/korap/utils/StringUtils.java
+++ b/src/main/java/de/ids_mannheim/korap/utils/StringUtils.java
@@ -7,7 +7,7 @@
 
 public class StringUtils {
     private final static Logger jlog = KustvaktLogger
-            .initiate(StringUtils.class);
+            .getLogger(StringUtils.class);
 
     private static final String SLASH = "/";
     private static final String SEP = ";";
diff --git a/src/main/java/de/ids_mannheim/korap/web/filter/PiwikFilter.java b/src/main/java/de/ids_mannheim/korap/web/filter/PiwikFilter.java
index 8ad76c6..0817ede 100644
--- a/src/main/java/de/ids_mannheim/korap/web/filter/PiwikFilter.java
+++ b/src/main/java/de/ids_mannheim/korap/web/filter/PiwikFilter.java
@@ -36,7 +36,7 @@
     private WebResource service;
     //    private static final String SERVICE = "http://localhost:8888";
     private static final String SERVICE = "http://10.0.10.13";
-    private static Logger jlog = KustvaktLogger.initiate(PiwikFilter.class);
+    private static Logger jlog = KustvaktLogger.getLogger(PiwikFilter.class);
     public static boolean ENABLED = false;
     private Map<String, String> customVars;
     private AuthenticationManagerIface securityController;
diff --git a/src/main/java/de/ids_mannheim/korap/web/service/AuthService.java b/src/main/java/de/ids_mannheim/korap/web/service/AuthService.java
index d4b98fc..9c14f48 100644
--- a/src/main/java/de/ids_mannheim/korap/web/service/AuthService.java
+++ b/src/main/java/de/ids_mannheim/korap/web/service/AuthService.java
@@ -41,7 +41,7 @@
 
     //todo: bootstrap function to transmit certain default configuration settings and examples (example user queries,
     // default usersettings, etc.)
-    private static Logger jlog = KustvaktLogger.initiate(AuthService.class);
+    private static Logger jlog = KustvaktLogger.getLogger(AuthService.class);
 
     private AuthenticationManagerIface controller;
     //    private SendMail mail;
diff --git a/src/main/java/de/ids_mannheim/korap/web/service/UserService.java b/src/main/java/de/ids_mannheim/korap/web/service/UserService.java
index d3bc6a2..fd221a4 100644
--- a/src/main/java/de/ids_mannheim/korap/web/service/UserService.java
+++ b/src/main/java/de/ids_mannheim/korap/web/service/UserService.java
@@ -40,9 +40,9 @@
 public class UserService {
 
     private static Logger error = KustvaktLogger
-            .initiate(KustvaktLogger.ERROR_LOG);
+            .getLogger(KustvaktLogger.ERROR_LOG);
     private static Logger jlog = KustvaktLogger
-            .initiate(KustvaktLogger.SECURITY_LOG);
+            .getLogger(KustvaktLogger.SECURITY_LOG);
     private AuthenticationManagerIface controller;
     private ResourceHandler resourceHandler;
 
