diff --git a/pom.xml b/pom.xml
index 45a2c2d8ccac71ec8b1c42950c2c8d9aabf25145..89b5118100c5b0be2f51b276c5ebc0b821b3e865 100644
--- a/pom.xml
+++ b/pom.xml
@@ -49,6 +49,12 @@
         <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>
@@ -59,6 +65,13 @@
         <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>
@@ -98,6 +111,18 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-security</artifactId>
         </dependency>
+
+        <dependency>
+            <groupId>de.tobias</groupId>
+            <artifactId>libLogger-slf4j</artifactId>
+            <version>1.0.4</version>
+        </dependency>
+
+        <dependency>
+            <groupId>de.tobias</groupId>
+            <artifactId>libUtils</artifactId>
+            <version>1.7.0</version>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/src/main/java/de/deadlocker8/budgetmaster/Main.java b/src/main/java/de/deadlocker8/budgetmaster/Main.java
index f86fe184f6a5c5cafdac86175e60aa7b233d8a73..18340691e24375f1c418007037af3a28849933ef 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/Main.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/Main.java
@@ -1,8 +1,9 @@
 package de.deadlocker8.budgetmaster;
 
 import de.deadlocker8.budgetmaster.utils.Strings;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import de.tobias.logger.*;
+import de.tobias.utils.application.ApplicationUtils;
+import de.tobias.utils.application.container.PathType;
 import org.springframework.boot.ApplicationArguments;
 import org.springframework.boot.ApplicationRunner;
 import org.springframework.boot.SpringApplication;
@@ -16,10 +17,10 @@ import java.util.Locale;
 @SpringBootApplication
 public class Main implements ApplicationRunner
 {
-	private final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
-
 	public static void main(String[] args)
 	{
+		Logger.init(ApplicationUtils.getApplication().getPath(PathType.LOG));
+
 		ProgramArgs.setArgs(Arrays.asList(args));
 
 		Localization.init("languages/");
@@ -31,13 +32,30 @@ public class Main implements ApplicationRunner
 	@Override
 	public void run(ApplicationArguments args) throws Exception
 	{
-		//TODO set loglevel
-//		String logLevelParam = args.getOptionValues("loglevel").get(0);
-
-		logAppInfo(Localization.getString(Strings.APP_NAME), Localization.getString(Strings.VERSION_NAME), Localization.getString(Strings.VERSION_CODE), Localization.getString(Strings.VERSION_DATE));
-	}
-
-	private void logAppInfo(String appName, String versionName, String versionCode, String versionDate) {
-		LOGGER.info(appName + " - v" + versionName + " - (versioncode: " + versionCode + ") from " + versionDate + ")");
+		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);
+		}
+
+		Logger.appInfo(Localization.getString(Strings.APP_NAME), Localization.getString(Strings.VERSION_NAME), Localization.getString(Strings.VERSION_CODE), Localization.getString(Strings.VERSION_DATE));
 	}
 }
\ No newline at end of file
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 93eb84a86d3b09ba4fa899dbe608624eb8c41755..e9648b0d37d578a24225ea2b45fd48e7d0e3e39d 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,10 +1,5 @@
 server.port=9000
 
-logging.level.root=INFO
-#logging.level.org.springframework=ERROR
-logging.level.de.deadlocker8=DEBUG
-logging.file=error.log
-
 spring.mvc.log-resolved-exception=false
 
 spring.jpa.hibernate.ddl-auto=update
diff --git a/src/main/resources/config/libLogger.yml b/src/main/resources/config/libLogger.yml
new file mode 100644
index 0000000000000000000000000000000000000000..381147d6f5aea97e3ad33a69e045260fbc7e4488
--- /dev/null
+++ b/src/main/resources/config/libLogger.yml
@@ -0,0 +1,20 @@
+color:
+  enable: true
+  info: "GREEN"
+  warn: "YELLOW"
+  error: "RED"
+  time: "BLUE"
+  detail: "CYAN"
+  message: "RESET"
+
+dateFormatterPattern: "dd.MM.YY HH:mm:ss"
+
+defaultOutLevel: "DEBUG"
+defaultErrLevel: "ERROR"
+
+showShortPackageName: false
+showClassName: true
+showMethodName: true
+showLineNumber: true
+
+ignoreStandardStream: true
\ No newline at end of file