From 9157b5da05a3231b425e7a163339f74c58324ee3 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Mon, 22 Oct 2018 20:03:20 +0200
Subject: [PATCH] #334 - Revert "#284 - replaced old logger calls; removed
 BaseController"

This reverts commit ac17849
---
 pom.xml                                       | 18 --------
 .../de/deadlocker8/budgetmaster/Main.java     | 44 +++++--------------
 .../authentication/UserService.java           |  9 ++--
 .../controller/AboutController.java           |  2 +-
 .../controller/AccountController.java         |  8 ++--
 .../controller/BaseController.java            |  9 ++++
 .../controller/CategoryController.java        |  2 +-
 .../controller/DatePickerController.java      |  2 +-
 .../controller/EmptyPageController.java       |  2 +-
 .../controller/IndexController.java           |  2 +-
 .../controller/LoginController.java           |  3 +-
 .../controller/SettingsController.java        | 21 +++++----
 .../controller/TeapotController.java          |  2 +-
 .../controller/TransactionController.java     |  7 ++-
 .../budgetmaster/database/DatabaseParser.java | 10 +++--
 .../database/DatabaseParser_v3.java           |  3 ++
 .../budgetmaster/services/AccountService.java |  6 ++-
 .../services/CategoryService.java             |  8 ++--
 .../services/DatabaseService.java             | 20 +++++----
 .../budgetmaster/services/ImportService.java  |  3 ++
 .../services/SettingsService.java             |  6 ++-
 .../budgetmaster/services/TagService.java     |  3 ++
 .../services/TransactionService.java          |  3 ++
 .../database/DatabaseParser_v3Test.java       |  7 ++-
 .../database/LegacyParserTest.java            |  7 ++-
 25 files changed, 100 insertions(+), 107 deletions(-)
 create mode 100644 src/main/java/de/deadlocker8/budgetmaster/controller/BaseController.java

diff --git a/pom.xml b/pom.xml
index 5bcb117fd..d2cd73102 100644
--- a/pom.xml
+++ b/pom.xml
@@ -69,12 +69,6 @@
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-freemarker</artifactId>
-            <exclusions>
-                <exclusion>
-                    <artifactId>spring-boot-starter-logging</artifactId>
-                    <groupId>org.springframework.boot</groupId>
-                </exclusion>
-            </exclusions>
         </dependency>
 
         <dependency>
@@ -85,13 +79,6 @@
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
-
-            <exclusions>
-                <exclusion>
-                    <groupId>org.springframework.boot</groupId>
-                    <artifactId>spring-boot-starter-logging</artifactId>
-                </exclusion>
-            </exclusions>
         </dependency>
 
         <dependency>
@@ -121,11 +108,6 @@
             <artifactId>spring-boot-starter-security</artifactId>
         </dependency>
 
-        <dependency>
-            <groupId>de.thecodelabs</groupId>
-            <artifactId>libLogger-slf4j</artifactId>
-        </dependency>
-
         <dependency>
             <groupId>de.tobias</groupId>
             <artifactId>libUtils</artifactId>
diff --git a/src/main/java/de/deadlocker8/budgetmaster/Main.java b/src/main/java/de/deadlocker8/budgetmaster/Main.java
index 48c8f630a..1b8c87d2c 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/Main.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/Main.java
@@ -1,13 +1,10 @@
 package de.deadlocker8.budgetmaster;
 
-import de.deadlocker8.budgetmaster.utils.Strings;
-import de.thecodelabs.logger.FileOutputOption;
-import de.thecodelabs.logger.LogLevel;
-import de.thecodelabs.logger.LogLevelFilter;
-import de.thecodelabs.logger.Logger;
 import de.tobias.utils.io.PathUtils;
 import de.tobias.utils.util.Localization;
 import de.tobias.utils.util.SystemUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.boot.ApplicationArguments;
 import org.springframework.boot.ApplicationRunner;
 import org.springframework.boot.SpringApplication;
@@ -24,6 +21,8 @@ import java.util.Locale;
 @SpringBootApplication
 public class Main implements ApplicationRunner
 {
+	private final static Logger LOGGER = LoggerFactory.getLogger(Main.class);
+
 	public static void main(String[] args)
 	{
 		Localization.setDelegate(new Localization.LocalizationDelegate()
@@ -51,11 +50,9 @@ public class Main implements ApplicationRunner
 		Path applicationSupportFolder = SystemUtils.getApplicationSupportDirectoryPath(Localization.getString("folder"));
 		PathUtils.createDirectoriesIfNotExists(applicationSupportFolder);
 
-		Logger.init(applicationSupportFolder);
-		Logger.setFileOutput(FileOutputOption.COMBINED);
 
 		Build build = Build.getInstance();
-		Logger.appInfo(build.getAppName(), build.getVersionName(), build.getVersionCode(), build.getVersionDate());
+		logAppInfo(build.getAppName(), build.getVersionName(), build.getVersionCode(), build.getVersionDate());
 
 		ProgramArgs.setArgs(Arrays.asList(args));
 
@@ -64,13 +61,13 @@ public class Main implements ApplicationRunner
 		{
 			try
 			{
-				Logger.warning("BudgetMaster settings file ({0}) is missing. A default file will be created. Please fill in your settings.", settingsPath);
+				LOGGER.warn("BudgetMaster settings file ({0}) is missing. A default file will be created. Please fill in your settings.", settingsPath);
 				Files.copy(Main.class.getClassLoader().getResourceAsStream("config/templates/settings.properties"), settingsPath, StandardCopyOption.REPLACE_EXISTING);
 				System.exit(1);
 			}
 			catch(IOException e)
 			{
-				Logger.error(e);
+				e.printStackTrace();
 			}
 		}
 
@@ -78,30 +75,11 @@ public class Main implements ApplicationRunner
 	}
 
 	@Override
-	public void run(ApplicationArguments args) throws Exception
+	public void run(ApplicationArguments args)
 	{
-		String logLevelParam = args.getOptionValues("loglevel").get(0);
-		if(logLevelParam.equalsIgnoreCase("debug"))
-		{
-			Logger.setLevelFilter(LogLevelFilter.DEBUG);
-			Logger.addFilter(logMessage -> {
-				if(logMessage.getCaller().getClassName().contains("deadlocker8"))
-				{
-					return true;
-				}
-
-				if(logMessage.getLevel().equals(LogLevel.DEBUG) || logMessage.getLevel().equals(LogLevel.TRACE))
-				{
-					return false;
-				}
+	}
 
-				return true;
-			});
-		}
-		else
-		{
-			Logger.setLevelFilter(LogLevelFilter.NORMAL);
-			Logger.setFileOutput(FileOutputOption.COMBINED);
-		}
+	private static void logAppInfo(String appName, String versionName, String versionCode, String versionDate) {
+		LOGGER.info(appName + " - v" + versionName + " - (versioncode: " + versionCode + ") from " + versionDate + ")");
 	}
 }
\ No newline at end of file
diff --git a/src/main/java/de/deadlocker8/budgetmaster/authentication/UserService.java b/src/main/java/de/deadlocker8/budgetmaster/authentication/UserService.java
index 27979476c..4d5b32531 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/authentication/UserService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/authentication/UserService.java
@@ -2,7 +2,8 @@ package de.deadlocker8.budgetmaster.authentication;
 
 import de.deadlocker8.budgetmaster.ProgramArgs;
 import de.deadlocker8.budgetmaster.services.AccountService;
-import de.thecodelabs.logger.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.stereotype.Service;
@@ -10,12 +11,14 @@ import org.springframework.stereotype.Service;
 @Service
 public class UserService
 {
+	private final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
+
 	@Autowired
 	public UserService(UserRepository userRepository, AccountService accountService)
 	{
 		if(ProgramArgs.getArgs().contains("--resetPassword"))
 		{
-			Logger.info("Password reset");
+			LOGGER.info("Password reset");
 			userRepository.deleteAll();
 		}
 
@@ -25,7 +28,7 @@ public class UserService
 			String encryptedPassword = bCryptPasswordEncoder.encode("BudgetMaster");
 			User user = new User("Default", encryptedPassword);
 			userRepository.save(user);
-			Logger.info("Created default user");
+			LOGGER.info("Created default user");
 
 			accountService.selectAccount(accountService.getRepository().findByIsSelected(true).getID());
 		}
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/AboutController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/AboutController.java
index 5d84b42a8..ba3992650 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/AboutController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/AboutController.java
@@ -5,7 +5,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 
 
 @Controller
-public class AboutController
+public class AboutController extends BaseController
 {
 	@RequestMapping("/about")
 	public String index()
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/AccountController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/AccountController.java
index 5f85e16f5..266c89b60 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/AccountController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/AccountController.java
@@ -10,16 +10,14 @@ import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.validation.BindingResult;
 import org.springframework.validation.FieldError;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import javax.servlet.http.HttpServletRequest;
 
 
 @Controller
-public class AccountController
+public class AccountController extends BaseController
 {
 	@Autowired
 	private AccountRepository accountRepository;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/BaseController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/BaseController.java
new file mode 100644
index 000000000..ab1dc11ce
--- /dev/null
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/BaseController.java
@@ -0,0 +1,9 @@
+package de.deadlocker8.budgetmaster.controller;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public abstract class BaseController
+{
+	final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
+}
\ No newline at end of file
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/CategoryController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/CategoryController.java
index 21fd55435..86fe0e2da 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/CategoryController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/CategoryController.java
@@ -20,7 +20,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
 
 
 @Controller
-public class CategoryController
+public class CategoryController extends BaseController
 {
 	@Autowired
 	private CategoryRepository categoryRepository;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/DatePickerController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/DatePickerController.java
index bd54aa7d4..c7cdfb79b 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/DatePickerController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/DatePickerController.java
@@ -16,7 +16,7 @@ import javax.servlet.http.HttpServletResponse;
 
 
 @Controller
-public class DatePickerController
+public class DatePickerController extends BaseController
 {
 	@Autowired
 	private SettingsRepository settingsRepository;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/EmptyPageController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/EmptyPageController.java
index 5c2206cbd..e0663e0d8 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/EmptyPageController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/EmptyPageController.java
@@ -6,7 +6,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 
 
 @Controller
-public class EmptyPageController
+public class EmptyPageController extends BaseController
 {
 	@RequestMapping("/reports")
 	public String reports(Model model)
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/IndexController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/IndexController.java
index fa70ac955..9801219b7 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/IndexController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/IndexController.java
@@ -5,7 +5,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 
 
 @Controller
-public class IndexController
+public class IndexController extends BaseController
 {
 	@RequestMapping("/")
 	public String index()
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/LoginController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/LoginController.java
index 01dc61f24..564a35270 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/LoginController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/LoginController.java
@@ -4,12 +4,13 @@ import org.springframework.security.web.savedrequest.DefaultSavedRequest;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.Map;
 
 @Controller
-public class LoginController
+public class LoginController extends BaseController
 {
 	@RequestMapping("/login")
 	public String login(HttpServletRequest request, Model model)
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java
index d7f53db7c..d78ba3fc3 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java
@@ -13,10 +13,11 @@ import de.deadlocker8.budgetmaster.services.HelpersService;
 import de.deadlocker8.budgetmaster.services.ImportService;
 import de.deadlocker8.budgetmaster.utils.LanguageType;
 import de.deadlocker8.budgetmaster.utils.Strings;
-import de.thecodelabs.logger.Logger;
 import de.tobias.utils.util.Localization;
 import de.tobias.utils.util.RandomUtils;
 import org.joda.time.DateTime;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.stereotype.Controller;
@@ -39,7 +40,7 @@ import java.io.UnsupportedEncodingException;
 
 
 @Controller
-public class SettingsController
+public class SettingsController extends BaseController
 {
 	@Autowired
 	private SettingsRepository settingsRepository;
@@ -59,6 +60,8 @@ public class SettingsController
 	@Autowired
 	private ImportService importService;
 
+	private final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
+
 	@RequestMapping("/settings")
 	public String settings(WebRequest request, Model model)
 	{
@@ -134,7 +137,7 @@ public class SettingsController
 	@RequestMapping("/settings/database/requestExport")
 	public void downloadFile(HttpServletResponse response)
 	{
-		Logger.debug("Exporting database...");
+		LOGGER.debug("Exporting database...");
 		String data = databaseService.getDatabaseAsJSON();
 		try
 		{
@@ -150,16 +153,16 @@ public class SettingsController
 			{
 				out.write(dataBytes);
 				out.flush();
-				Logger.debug("Exporting database DONE");
+				LOGGER.debug("Exporting database DONE");
 			}
 			catch(IOException e)
 			{
-				Logger.error(e);
+				e.printStackTrace();
 			}
 		}
 		catch(UnsupportedEncodingException e)
 		{
-			Logger.error(e);
+			e.printStackTrace();
 		}
 	}
 
@@ -178,9 +181,9 @@ public class SettingsController
 	{
 		if(verificationUserInput.equals(verificationCode))
 		{
-			Logger.info("Deleting database...");
+			LOGGER.info("Deleting database...");
 			databaseService.reset();
-			Logger.info("Deleting database DONE.");
+			LOGGER.info("Deleting database DONE.");
 		}
 		else
 		{
@@ -216,7 +219,7 @@ public class SettingsController
 		}
 		catch(Exception e)
 		{
-			Logger.error(e);
+			e.printStackTrace();
 
 			model.addAttribute("errorImportDatabase", e.getMessage());
 			return "settings";
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/TeapotController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/TeapotController.java
index 1ec0abda6..d5fc0e947 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/TeapotController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/TeapotController.java
@@ -5,7 +5,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 
 
 @Controller
-public class TeapotController
+public class TeapotController extends BaseController
 {
 	@RequestMapping("/418")
 	public String index()
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/TransactionController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/TransactionController.java
index f067db2ae..c617082dd 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/TransactionController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/TransactionController.java
@@ -1,13 +1,12 @@
 package de.deadlocker8.budgetmaster.controller;
 
+import de.deadlocker8.budgetmaster.entities.Transaction;
 import de.deadlocker8.budgetmaster.entities.Settings;
 import de.deadlocker8.budgetmaster.entities.Tag;
-import de.deadlocker8.budgetmaster.entities.Transaction;
 import de.deadlocker8.budgetmaster.repeating.RepeatingOption;
 import de.deadlocker8.budgetmaster.repeating.RepeatingTransactionUpdater;
 import de.deadlocker8.budgetmaster.repeating.endoption.*;
-import de.deadlocker8.budgetmaster.repeating.modifier.RepeatingModifier;
-import de.deadlocker8.budgetmaster.repeating.modifier.RepeatingModifierType;
+import de.deadlocker8.budgetmaster.repeating.modifier.*;
 import de.deadlocker8.budgetmaster.repositories.*;
 import de.deadlocker8.budgetmaster.services.HelpersService;
 import de.deadlocker8.budgetmaster.services.TransactionService;
@@ -26,7 +25,7 @@ import java.util.List;
 
 
 @Controller
-public class TransactionController
+public class TransactionController extends BaseController
 {
 	@Autowired
 	private TransactionRepository transactionRepository;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser.java b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser.java
index b1f4df260..3278b5189 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser.java
@@ -3,11 +3,13 @@ package de.deadlocker8.budgetmaster.database;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
 import de.deadlocker8.budgetmaster.database.legacy.LegacyParser;
-import de.thecodelabs.logger.Logger;
 import de.tobias.utils.util.Localization;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class DatabaseParser
 {
+	final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
 	private String jsonString;
 
 	public DatabaseParser(String json)
@@ -27,19 +29,19 @@ public class DatabaseParser
 			}
 
 			int version = root.get("VERSION").getAsInt();
-			Logger.info("Parsing Budgetmaster database with version " + version);
+			LOGGER.info("Parsing Budgetmaster database with version " + version);
 
 			if(version == 2)
 			{
 				Database database = new LegacyParser(jsonString).parseDatabaseFromJSON();
-				Logger.debug("Parsed database with " + database.getTransactions().size() + " transactions, " + database.getCategories().size() + " categories and " + database.getAccounts().size() + " accounts");
+				LOGGER.debug("Parsed database with " + database.getTransactions().size() + " transactions, " + database.getCategories().size() + " categories and " + database.getAccounts().size() + " accounts");
 				return database;
 			}
 
 			if(version == 3)
 			{
 				Database database = new DatabaseParser_v3(jsonString).parseDatabaseFromJSON();
-				Logger.debug("Parsed database with " + database.getTransactions().size() + " transactions, " + database.getCategories().size() + " categories and " + database.getAccounts().size() + " accounts");
+				LOGGER.debug("Parsed database with " + database.getTransactions().size() + " transactions, " + database.getCategories().size() + " categories and " + database.getAccounts().size() + " accounts");
 				return database;
 			}
 
diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3.java b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3.java
index eb51ace29..7a2addbc9 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3.java
@@ -8,12 +8,15 @@ import de.deadlocker8.budgetmaster.repeating.modifier.*;
 import de.tobias.utils.util.Localization;
 import org.joda.time.DateTime;
 import org.joda.time.format.DateTimeFormat;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
 import java.util.List;
 
 public class DatabaseParser_v3
 {
+	final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
 	private String jsonString;
 	private List<Category> categories;
 	private List<Account> accounts;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/AccountService.java b/src/main/java/de/deadlocker8/budgetmaster/services/AccountService.java
index b1472a4c3..2248dd146 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/AccountService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/AccountService.java
@@ -6,8 +6,9 @@ import de.deadlocker8.budgetmaster.entities.Account;
 import de.deadlocker8.budgetmaster.repositories.AccountRepository;
 import de.deadlocker8.budgetmaster.repositories.TransactionRepository;
 import de.deadlocker8.budgetmaster.utils.Strings;
-import de.thecodelabs.logger.Logger;
 import de.tobias.utils.util.Localization;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -17,6 +18,7 @@ import java.util.List;
 @Service
 public class AccountService implements Resetable
 {
+	private final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
 	private AccountRepository accountRepository;
 	private TransactionRepository transactionRepository;
 	private UserRepository userRepository;
@@ -70,7 +72,7 @@ public class AccountService implements Resetable
 			Account account = new Account(Localization.getString(Strings.ACCOUNT_DEFAULT_NAME));
 			account = accountRepository.save(account);
 			selectAccount(account.getID());
-			Logger.debug("Created default account");
+			LOGGER.debug("Created default account");
 		}
 	}
 
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/CategoryService.java b/src/main/java/de/deadlocker8/budgetmaster/services/CategoryService.java
index 2ce8a67db..a9a4bb16a 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/CategoryService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/CategoryService.java
@@ -5,8 +5,9 @@ import de.deadlocker8.budgetmaster.entities.CategoryType;
 import de.deadlocker8.budgetmaster.entities.Transaction;
 import de.deadlocker8.budgetmaster.repositories.CategoryRepository;
 import de.deadlocker8.budgetmaster.utils.Strings;
-import de.thecodelabs.logger.Logger;
 import de.tobias.utils.util.Localization;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -15,6 +16,7 @@ import java.util.List;
 @Service
 public class CategoryService implements Resetable
 {
+	private final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
 	private CategoryRepository categoryRepository;
 
 	@Autowired
@@ -57,13 +59,13 @@ public class CategoryService implements Resetable
 		if(categoryRepository.findByType(CategoryType.NONE) == null)
 		{
 			categoryRepository.save(new Category(Localization.getString(Strings.CATEGORY_NONE), "#FFFFFF", CategoryType.NONE));
-			Logger.debug("Created default category NONE");
+			LOGGER.debug("Created default category NONE");
 		}
 
 		if(categoryRepository.findByType(CategoryType.REST) == null)
 		{
 			categoryRepository.save(new Category(Localization.getString(Strings.CATEGORY_REST), "#FFFF00", CategoryType.REST));
-			Logger.debug("Created default category REST");
+			LOGGER.debug("Created default category REST");
 		}
 	}
 }
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/DatabaseService.java b/src/main/java/de/deadlocker8/budgetmaster/services/DatabaseService.java
index cd448af1c..489664120 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/DatabaseService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/DatabaseService.java
@@ -5,9 +5,10 @@ import de.deadlocker8.budgetmaster.database.Database;
 import de.deadlocker8.budgetmaster.entities.Account;
 import de.deadlocker8.budgetmaster.entities.Category;
 import de.deadlocker8.budgetmaster.entities.Transaction;
-import de.thecodelabs.logger.Logger;
 import org.joda.time.DateTime;
 import org.joda.time.format.ISODateTimeFormat;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -17,6 +18,7 @@ import java.util.List;
 @Service
 public class DatabaseService
 {
+	private final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
 	private AccountService accountService;
 	private CategoryService categoryService;
 	private TransactionService transactionService;
@@ -41,34 +43,34 @@ public class DatabaseService
 
 	private void resetAccounts()
 	{
-		Logger.info("Resetting accounts...");
+		LOGGER.info("Resetting accounts...");
 		accountService.deleteAll();
 		accountService.createDefaults();
-		Logger.info("All accounts reset.");
+		LOGGER.info("All accounts reset.");
 	}
 
 	private void resetCategories()
 	{
-		Logger.info("Resetting categories...");
+		LOGGER.info("Resetting categories...");
 		categoryService.deleteAll();
 		categoryService.createDefaults();
-		Logger.info("All categories reset.");
+		LOGGER.info("All categories reset.");
 	}
 
 	private void resetTransactions()
 	{
-		Logger.info("Resetting transactions...");
+		LOGGER.info("Resetting transactions...");
 		transactionService.deleteAll();
 		transactionService.createDefaults();
-		Logger.info("All transactions reset.");
+		LOGGER.info("All transactions reset.");
 	}
 
 	private void resetTags()
 	{
-		Logger.info("Resetting tags...");
+		LOGGER.info("Resetting tags...");
 		tagService.deleteAll();
 		tagService.createDefaults();
-		Logger.info("All tags reset.");
+		LOGGER.info("All tags reset.");
 	}
 
 	public String getDatabaseAsJSON()
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java b/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java
index f0e84fda6..135feb761 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java
@@ -10,6 +10,8 @@ import de.deadlocker8.budgetmaster.entities.Transaction;
 import de.deadlocker8.budgetmaster.repositories.CategoryRepository;
 import de.deadlocker8.budgetmaster.repositories.TagRepository;
 import de.deadlocker8.budgetmaster.repositories.TransactionRepository;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -19,6 +21,7 @@ import java.util.List;
 @Service
 public class ImportService
 {
+	private final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
 	@Autowired
 	private CategoryRepository categoryRepository;
 	@Autowired
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/SettingsService.java b/src/main/java/de/deadlocker8/budgetmaster/services/SettingsService.java
index 622ff4616..9addb0d6d 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/SettingsService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/SettingsService.java
@@ -2,13 +2,15 @@ package de.deadlocker8.budgetmaster.services;
 
 import de.deadlocker8.budgetmaster.entities.Settings;
 import de.deadlocker8.budgetmaster.repositories.SettingsRepository;
-import de.thecodelabs.logger.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 @Service
 public class SettingsService
 {
+	private final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
 	private SettingsRepository settingsRepository;
 
 	@Autowired
@@ -23,7 +25,7 @@ public class SettingsService
 		if(settingsRepository.findOne(0) == null)
 		{
 			settingsRepository.save(Settings.getDefault());
-			Logger.debug("Created default settings");
+			LOGGER.debug("Created default settings");
 		}
 	}
 
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/TagService.java b/src/main/java/de/deadlocker8/budgetmaster/services/TagService.java
index fa3064912..e5f767dcf 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/TagService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/TagService.java
@@ -1,12 +1,15 @@
 package de.deadlocker8.budgetmaster.services;
 
 import de.deadlocker8.budgetmaster.repositories.TagRepository;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 @Service
 public class TagService implements Resetable
 {
+	private final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
 	private TagRepository tagRepository;
 
 	@Autowired
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/TransactionService.java b/src/main/java/de/deadlocker8/budgetmaster/services/TransactionService.java
index b3799e249..2310cf6e8 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/TransactionService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/TransactionService.java
@@ -10,6 +10,8 @@ import de.deadlocker8.budgetmaster.utils.Strings;
 import de.tobias.utils.util.Localization;
 import org.joda.time.DateTime;
 import org.joda.time.format.ISODateTimeFormat;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -18,6 +20,7 @@ import java.util.List;
 @Service
 public class TransactionService implements Resetable
 {
+	private final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
 	private TransactionRepository transactionRepository;
 	private RepeatingOptionRepository repeatingOptionRepository;
 	private CategoryRepository categoryRepository;
diff --git a/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3Test.java b/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3Test.java
index 4ffccc79a..b9b158457 100644
--- a/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3Test.java
+++ b/src/test/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v3Test.java
@@ -4,7 +4,6 @@ import de.deadlocker8.budgetmaster.entities.*;
 import de.deadlocker8.budgetmaster.repeating.RepeatingOption;
 import de.deadlocker8.budgetmaster.repeating.endoption.RepeatingEndAfterXTimes;
 import de.deadlocker8.budgetmaster.repeating.modifier.RepeatingModifierDays;
-import de.thecodelabs.logger.Logger;
 import de.tobias.utils.util.Localization;
 import de.tobias.utils.util.Localization.LocalizationDelegate;
 import org.joda.time.DateTime;
@@ -69,7 +68,7 @@ public class DatabaseParser_v3Test
 		}
 		catch(IOException | URISyntaxException e)
 		{
-			Logger.error(e);
+			e.printStackTrace();
 		}
 	}
 
@@ -88,7 +87,7 @@ public class DatabaseParser_v3Test
 		}
 		catch(IOException | URISyntaxException e)
 		{
-			Logger.error(e);
+			e.printStackTrace();
 		}
 	}
 
@@ -174,7 +173,7 @@ public class DatabaseParser_v3Test
 		}
 		catch(IOException | URISyntaxException e)
 		{
-			Logger.error(e);
+			e.printStackTrace();
 		}
 	}
 }
\ No newline at end of file
diff --git a/src/test/java/de/deadlocker8/budgetmaster/database/LegacyParserTest.java b/src/test/java/de/deadlocker8/budgetmaster/database/LegacyParserTest.java
index 6b082834a..6a1a3ad39 100644
--- a/src/test/java/de/deadlocker8/budgetmaster/database/LegacyParserTest.java
+++ b/src/test/java/de/deadlocker8/budgetmaster/database/LegacyParserTest.java
@@ -7,7 +7,6 @@ import de.deadlocker8.budgetmaster.repeating.endoption.RepeatingEndDate;
 import de.deadlocker8.budgetmaster.repeating.endoption.RepeatingEndNever;
 import de.deadlocker8.budgetmaster.repeating.modifier.RepeatingModifierDays;
 import de.deadlocker8.budgetmaster.repeating.modifier.RepeatingModifierMonths;
-import de.thecodelabs.logger.Logger;
 import org.joda.time.DateTime;
 import org.joda.time.format.DateTimeFormat;
 import org.junit.Test;
@@ -45,7 +44,7 @@ public class LegacyParserTest
 		}
 		catch(IOException | URISyntaxException e)
 		{
-			Logger.error(e);
+			e.printStackTrace();
 		}
 	}
 
@@ -63,7 +62,7 @@ public class LegacyParserTest
 		}
 		catch(IOException | URISyntaxException e)
 		{
-			Logger.error(e);
+			e.printStackTrace();
 		}
 	}
 
@@ -143,7 +142,7 @@ public class LegacyParserTest
 		}
 		catch(IOException | URISyntaxException e)
 		{
-			Logger.error(e);
+			e.printStackTrace();
 		}
 	}
 }
\ No newline at end of file
-- 
GitLab