diff --git a/src/main/java/org/olat/core/commons/persistence/async/AbstractBackgroundTask.java b/src/main/java/org/olat/repository/async/AbstractBackgroundTask.java
similarity index 94%
rename from src/main/java/org/olat/core/commons/persistence/async/AbstractBackgroundTask.java
rename to src/main/java/org/olat/repository/async/AbstractBackgroundTask.java
index f8763b24706b800d3cc4e138d315b3b81ae708db..dfc331b0091059ddbee82be660f8644063ff4064 100644
--- a/src/main/java/org/olat/core/commons/persistence/async/AbstractBackgroundTask.java
+++ b/src/main/java/org/olat/repository/async/AbstractBackgroundTask.java
@@ -18,19 +18,20 @@
 * University of Zurich, Switzerland.
 * <p>
 */
-package org.olat.core.commons.persistence.async;
+package org.olat.repository.async;
 
-import org.apache.log4j.Logger;
 import org.hibernate.HibernateException;
 import org.olat.core.commons.persistence.DBFactory;
 import org.olat.core.logging.DBRuntimeException;
+import org.olat.core.logging.OLog;
+import org.olat.core.logging.Tracing;
 
 
 /**
  * @author Christian Guretzki
  */
 public abstract class AbstractBackgroundTask implements BackgroundTask {
-	private static Logger log = Logger.getLogger(AbstractBackgroundTask.class.getName());
+	private static OLog log = Tracing.createLoggerFor(AbstractBackgroundTask.class);
 	
 	private int maxRetry = 1000;// 0 = endless retry
 
@@ -124,7 +125,7 @@ public abstract class AbstractBackgroundTask implements BackgroundTask {
 		while (!this.isTaskDone() && counter < COUNTER_LIMIT) {
 			try {
 				log.debug("waitForDone: this.isTaskDone()=" + this.isTaskDone() + "   counter=" + counter + "  this=" + this);
-	            Thread.currentThread().sleep(200);
+	            Thread.sleep(200);
 	            counter++;
             } catch (InterruptedException e) {
             	// no log
diff --git a/src/main/java/org/olat/core/commons/persistence/async/BackgroundTask.java b/src/main/java/org/olat/repository/async/BackgroundTask.java
similarity index 94%
rename from src/main/java/org/olat/core/commons/persistence/async/BackgroundTask.java
rename to src/main/java/org/olat/repository/async/BackgroundTask.java
index 0bcf49d8c324f5c90841501c7a34250112819aed..594a297b9bfcd901fb10f3d87dadd7d037f72f27 100644
--- a/src/main/java/org/olat/core/commons/persistence/async/BackgroundTask.java
+++ b/src/main/java/org/olat/repository/async/BackgroundTask.java
@@ -18,7 +18,7 @@
 * University of Zurich, Switzerland.
 * <p>
 */
-package org.olat.core.commons.persistence.async;
+package org.olat.repository.async;
 
 
 /**
diff --git a/src/main/java/org/olat/core/commons/persistence/async/BackgroundTaskQueueManager.java b/src/main/java/org/olat/repository/async/BackgroundTaskQueueManager.java
similarity index 93%
rename from src/main/java/org/olat/core/commons/persistence/async/BackgroundTaskQueueManager.java
rename to src/main/java/org/olat/repository/async/BackgroundTaskQueueManager.java
index 1e61bf10a0377015a2960884a45a9b6022937cae..a8235ca14ce01f440ea104ef6cedee3ebe943025 100644
--- a/src/main/java/org/olat/core/commons/persistence/async/BackgroundTaskQueueManager.java
+++ b/src/main/java/org/olat/repository/async/BackgroundTaskQueueManager.java
@@ -18,7 +18,7 @@
 * University of Zurich, Switzerland.
 * <p>
 */
-package org.olat.core.commons.persistence.async;
+package org.olat.repository.async;
 
 import java.util.Queue;
 import java.util.concurrent.ConcurrentLinkedQueue;
@@ -27,6 +27,8 @@ import org.apache.log4j.Logger;
 import org.olat.core.manager.BasicManager;
 
 /**
+ * !!!This is only for the Repository Manager. It's absolutely forbidden to use for something else!!! 
+ * 
  * FIFO-queue for background job. Application can put-in 'background-task', the background-job check in a fix interval
  * this queue and can execute task. If you look for scheduled tasks check TaskExecutorManager
  * 
diff --git a/src/main/java/org/olat/repository/async/IncrementDownloadCounterBackgroundTask.java b/src/main/java/org/olat/repository/async/IncrementDownloadCounterBackgroundTask.java
index 639eb0c0254ccd217283586659c0975df933d572..6a42fe34739fc0df7105148d6c11f1fc5a50b68b 100644
--- a/src/main/java/org/olat/repository/async/IncrementDownloadCounterBackgroundTask.java
+++ b/src/main/java/org/olat/repository/async/IncrementDownloadCounterBackgroundTask.java
@@ -22,10 +22,9 @@ package org.olat.repository.async;
 
 import java.util.Date;
 
-import org.apache.log4j.Logger;
 import org.olat.commons.lifecycle.LifeCycleManager;
 import org.olat.core.commons.persistence.DBFactory;
-import org.olat.core.commons.persistence.async.AbstractBackgroundTask;
+import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryManager;
@@ -37,7 +36,7 @@ import org.olat.testutils.codepoints.server.Codepoint;
  * @author Christian Guretzki
  */
 public class IncrementDownloadCounterBackgroundTask extends AbstractBackgroundTask {
-	private static Logger log = Logger.getLogger(IncrementDownloadCounterBackgroundTask.class.getName());
+	private static OLog log = Tracing.createLoggerFor(IncrementDownloadCounterBackgroundTask.class);
 	
 	private RepositoryEntry repositoryEntry;
 	
@@ -54,7 +53,7 @@ public class IncrementDownloadCounterBackgroundTask extends AbstractBackgroundTa
 			reloadedRe.setLastUsage(new Date());
 			LifeCycleManager lcManager = LifeCycleManager.createInstanceFor(reloadedRe);
 			if (lcManager.lookupLifeCycleEntry(RepositoryDeletionManager.SEND_DELETE_EMAIL_ACTION) != null) {
-				Tracing.logAudit("Repository-Deletion: Remove from delete-list repositoryEntry=" + reloadedRe, RepositoryManager.class);
+				log.audit("Repository-Deletion: Remove from delete-list repositoryEntry=" + reloadedRe);
 				LifeCycleManager.createInstanceFor(reloadedRe).deleteTimestampFor(RepositoryDeletionManager.SEND_DELETE_EMAIL_ACTION);
 			}
 			Codepoint.hierarchicalCodepoint(IncrementDownloadCounterBackgroundTask.class, "executeTask-before-update", 1);
diff --git a/src/main/java/org/olat/repository/async/IncrementLaunchCounterBackgroundTask.java b/src/main/java/org/olat/repository/async/IncrementLaunchCounterBackgroundTask.java
index 4456bd95713c0f07ad1ade679750622332d7a8fb..dac9d027f77fbe775097aa91f64bfb3b3b310ba7 100644
--- a/src/main/java/org/olat/repository/async/IncrementLaunchCounterBackgroundTask.java
+++ b/src/main/java/org/olat/repository/async/IncrementLaunchCounterBackgroundTask.java
@@ -22,10 +22,9 @@ package org.olat.repository.async;
 
 import java.util.Date;
 
-import org.apache.log4j.Logger;
 import org.olat.commons.lifecycle.LifeCycleManager;
 import org.olat.core.commons.persistence.DBFactory;
-import org.olat.core.commons.persistence.async.AbstractBackgroundTask;
+import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryManager;
@@ -36,7 +35,7 @@ import org.olat.repository.delete.service.RepositoryDeletionManager;
  * @author Christian Guretzki
  */
 public class IncrementLaunchCounterBackgroundTask extends AbstractBackgroundTask {
-	private static Logger log = Logger.getLogger(IncrementLaunchCounterBackgroundTask.class.getName());
+	private static OLog log = Tracing.createLoggerFor(IncrementLaunchCounterBackgroundTask.class);
 	
 	private RepositoryEntry repositoryEntry;
 	
@@ -53,7 +52,7 @@ public class IncrementLaunchCounterBackgroundTask extends AbstractBackgroundTask
 			reloadedRe.setLastUsage(new Date());
 			LifeCycleManager lcManager = LifeCycleManager.createInstanceFor(reloadedRe);
 			if (lcManager.lookupLifeCycleEntry(RepositoryDeletionManager.SEND_DELETE_EMAIL_ACTION) != null) {
-				Tracing.logAudit("Repository-Deletion: Remove from delete-list repositoryEntry=" + reloadedRe, RepositoryManager.class);
+				log.audit("Repository-Deletion: Remove from delete-list repositoryEntry=" + reloadedRe);
 				LifeCycleManager.createInstanceFor(reloadedRe).deleteTimestampFor(RepositoryDeletionManager.SEND_DELETE_EMAIL_ACTION);
 			}
 			RepositoryManager.getInstance().updateRepositoryEntry(reloadedRe);
diff --git a/src/main/java/org/olat/repository/async/SetAccessBackgroundTask.java b/src/main/java/org/olat/repository/async/SetAccessBackgroundTask.java
index d9ea8077d2c2a5f58e17b6d8b4c88c0893085ff5..1b9dc9bde478d5b1206e88ba49dfd6701be47cf2 100644
--- a/src/main/java/org/olat/repository/async/SetAccessBackgroundTask.java
+++ b/src/main/java/org/olat/repository/async/SetAccessBackgroundTask.java
@@ -20,9 +20,9 @@
 */
 package org.olat.repository.async;
 
-import org.apache.log4j.Logger;
 import org.olat.core.commons.persistence.DBFactory;
-import org.olat.core.commons.persistence.async.AbstractBackgroundTask;
+import org.olat.core.logging.OLog;
+import org.olat.core.logging.Tracing;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryManager;
 
@@ -31,7 +31,7 @@ import org.olat.repository.RepositoryManager;
  * @author Christian Guretzki
  */
 public class SetAccessBackgroundTask extends AbstractBackgroundTask {
-	private static Logger log = Logger.getLogger(SetAccessBackgroundTask.class.getName());
+	private static OLog log = Tracing.createLoggerFor(SetAccessBackgroundTask.class);
 	
 	private RepositoryEntry repositoryEntry;
 	private int access;
diff --git a/src/main/java/org/olat/repository/async/SetDescriptionNameBackgroundTask.java b/src/main/java/org/olat/repository/async/SetDescriptionNameBackgroundTask.java
index 76aae20853dda812a9bdf772f7744de83125776e..6967324df5696310dc4cd15d73ba56e0f8a28a1a 100644
--- a/src/main/java/org/olat/repository/async/SetDescriptionNameBackgroundTask.java
+++ b/src/main/java/org/olat/repository/async/SetDescriptionNameBackgroundTask.java
@@ -20,9 +20,9 @@
 */
 package org.olat.repository.async;
 
-import org.apache.log4j.Logger;
 import org.olat.core.commons.persistence.DBFactory;
-import org.olat.core.commons.persistence.async.AbstractBackgroundTask;
+import org.olat.core.logging.OLog;
+import org.olat.core.logging.Tracing;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryManager;
 
@@ -31,7 +31,7 @@ import org.olat.repository.RepositoryManager;
  * @author Christian Guretzki
  */
 public class SetDescriptionNameBackgroundTask extends AbstractBackgroundTask {
-	private static Logger log = Logger.getLogger(SetDescriptionNameBackgroundTask.class.getName());
+	private static OLog log = Tracing.createLoggerFor(SetDescriptionNameBackgroundTask.class);
 	
 	private RepositoryEntry repositoryEntry;
 
diff --git a/src/main/java/org/olat/repository/async/SetLastUsageBackgroundTask.java b/src/main/java/org/olat/repository/async/SetLastUsageBackgroundTask.java
index 87a090157835ecc5e6e0f097eab6b5b0e8fd524d..43873443ab3ff58508aeffd834eafaf9b2f9d465 100644
--- a/src/main/java/org/olat/repository/async/SetLastUsageBackgroundTask.java
+++ b/src/main/java/org/olat/repository/async/SetLastUsageBackgroundTask.java
@@ -22,10 +22,9 @@ package org.olat.repository.async;
 
 import java.util.Date;
 
-import org.apache.log4j.Logger;
 import org.olat.commons.lifecycle.LifeCycleManager;
 import org.olat.core.commons.persistence.DBFactory;
-import org.olat.core.commons.persistence.async.AbstractBackgroundTask;
+import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryManager;
@@ -36,7 +35,7 @@ import org.olat.repository.delete.service.RepositoryDeletionManager;
  * @author Christian Guretzki
  */
 public class SetLastUsageBackgroundTask extends AbstractBackgroundTask {
-	private static Logger log = Logger.getLogger(SetLastUsageBackgroundTask.class.getName());
+	private static OLog log = Tracing.createLoggerFor(SetLastUsageBackgroundTask.class);
 	
 	private RepositoryEntry repositoryEntry;
 	
@@ -52,7 +51,7 @@ public class SetLastUsageBackgroundTask extends AbstractBackgroundTask {
 			reloadedRe.setLastUsage(new Date());
 			LifeCycleManager lcManager = LifeCycleManager.createInstanceFor(reloadedRe);
 			if (lcManager.lookupLifeCycleEntry(RepositoryDeletionManager.SEND_DELETE_EMAIL_ACTION) != null) {
-				Tracing.logAudit("Repository-Deletion: Remove from delete-list repositoryEntry=" + reloadedRe, RepositoryManager.class);
+				log.audit("Repository-Deletion: Remove from delete-list repositoryEntry=" + reloadedRe);
 				lcManager.deleteTimestampFor(RepositoryDeletionManager.SEND_DELETE_EMAIL_ACTION);
 			}
 			RepositoryManager.getInstance().updateRepositoryEntry(reloadedRe);
diff --git a/src/main/java/org/olat/repository/async/SetPropertiesBackgroundTask.java b/src/main/java/org/olat/repository/async/SetPropertiesBackgroundTask.java
index e10a43a249a2abff6672b69dd5c179709cbaf9ec..bfc0705b9821d9b2a3553dd29ad80643314b7254 100644
--- a/src/main/java/org/olat/repository/async/SetPropertiesBackgroundTask.java
+++ b/src/main/java/org/olat/repository/async/SetPropertiesBackgroundTask.java
@@ -20,9 +20,9 @@
 */
 package org.olat.repository.async;
 
-import org.apache.log4j.Logger;
 import org.olat.core.commons.persistence.DBFactory;
-import org.olat.core.commons.persistence.async.AbstractBackgroundTask;
+import org.olat.core.logging.OLog;
+import org.olat.core.logging.Tracing;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryManager;
 
@@ -31,7 +31,7 @@ import org.olat.repository.RepositoryManager;
  * @author Christian Guretzki
  */
 public class SetPropertiesBackgroundTask extends AbstractBackgroundTask {
-	private static Logger log = Logger.getLogger(SetPropertiesBackgroundTask.class.getName());
+	private static OLog log = Tracing.createLoggerFor(SetPropertiesBackgroundTask.class);
 	
 	private RepositoryEntry repositoryEntry;
 
diff --git a/src/main/java/org/olat/core/commons/persistence/async/TaskExecutorThread.java b/src/main/java/org/olat/repository/async/TaskExecutorThread.java
similarity index 92%
rename from src/main/java/org/olat/core/commons/persistence/async/TaskExecutorThread.java
rename to src/main/java/org/olat/repository/async/TaskExecutorThread.java
index 5911e0e47d886fd8f639581ffb32b443aa4ce1dd..4848ed9581c150e1a842189a6b2166c68f6a9dcf 100644
--- a/src/main/java/org/olat/core/commons/persistence/async/TaskExecutorThread.java
+++ b/src/main/java/org/olat/repository/async/TaskExecutorThread.java
@@ -18,12 +18,13 @@
 * University of Zurich, Switzerland.
 * <p>
 */
-package org.olat.core.commons.persistence.async;
+package org.olat.repository.async;
 
 import java.util.Queue;
 
-import org.apache.log4j.Logger;
 import org.olat.core.commons.persistence.DBFactory;
+import org.olat.core.logging.OLog;
+import org.olat.core.logging.Tracing;
 
 /**
  * this is a special task executor system used only for learning resources. If you look for a general task Executor for scheduled tasks
@@ -32,7 +33,7 @@ import org.olat.core.commons.persistence.DBFactory;
  * @author Christian Guretzki
  */
 public class TaskExecutorThread extends Thread {
-	private static Logger log = Logger.getLogger(TaskExecutorThread.class.getName());
+	private static OLog log = Tracing.createLoggerFor(TaskExecutorThread.class);
 	Queue<BackgroundTask> taskQueue;
 
 	public TaskExecutorThread(Queue<BackgroundTask> taskQueue) {
@@ -58,7 +59,7 @@ public class TaskExecutorThread extends Thread {
 			if (taskQueue.size() > 0) {
 				// Queue is not empty
 				long startTime = 0;
-				if (log.isDebugEnabled()) {
+				if (log.isDebug()) {
 					startTime = System.currentTimeMillis();
 				}
 				if (taskQueue.size() > 10) {
@@ -76,7 +77,7 @@ public class TaskExecutorThread extends Thread {
 		    }
 				// running in a seperate thread, we must close db-session after each run.
 				DBFactory.getInstance().commitAndCloseSession();
-				if (log.isDebugEnabled()) {
+				if (log.isDebug()) {
 					long endTime = System.currentTimeMillis();
 					log.debug("TaskExecutorThread executed in " + (endTime - startTime) + "ms, executeCount=" + executeCount );
 				}
diff --git a/src/main/java/org/olat/core/commons/persistence/async/doc-files/BackgroundJobDesign.png b/src/main/java/org/olat/repository/async/doc-files/BackgroundJobDesign.png
similarity index 100%
rename from src/main/java/org/olat/core/commons/persistence/async/doc-files/BackgroundJobDesign.png
rename to src/main/java/org/olat/repository/async/doc-files/BackgroundJobDesign.png
diff --git a/src/main/java/org/olat/core/commons/persistence/async/doc-files/BackgroundJobDesign.vsd b/src/main/java/org/olat/repository/async/doc-files/BackgroundJobDesign.vsd
similarity index 100%
rename from src/main/java/org/olat/core/commons/persistence/async/doc-files/BackgroundJobDesign.vsd
rename to src/main/java/org/olat/repository/async/doc-files/BackgroundJobDesign.vsd
diff --git a/src/main/java/org/olat/core/commons/persistence/async/package.html b/src/main/java/org/olat/repository/async/package.html
similarity index 100%
rename from src/main/java/org/olat/core/commons/persistence/async/package.html
rename to src/main/java/org/olat/repository/async/package.html