diff --git a/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/Logging.scala b/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/Logging.scala
new file mode 100644
index 0000000000000000000000000000000000000000..9b8197de1acdc1ca492760b931180e09176068bb
--- /dev/null
+++ b/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/Logging.scala
@@ -0,0 +1,27 @@
+package nl.lumc.sasc.biopet.core
+
+import java.text.SimpleDateFormat
+import java.util.Calendar
+import org.apache.log4j.Logger
+import org.apache.log4j.WriterAppender
+import org.apache.log4j.helpers.DateLayout
+
+trait Logging {
+  protected val logger = Logger.getLogger(getClass.getSimpleName.split("\\$").last)
+
+  private[core] val logLayout = new DateLayout() {
+    val ignoresThrowable = false
+    def format(event: org.apache.log4j.spi.LoggingEvent): String = {
+      val calendar: Calendar = Calendar.getInstance
+      calendar.setTimeInMillis(event.getTimeStamp)
+      val formatter: SimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+      val formattedDate: String = formatter.format(calendar.getTime)
+      var logLevel = event.getLevel.toString
+      while (logLevel.size < 6) logLevel += " "
+      logLevel + " [" + formattedDate + "] [" + event.getLoggerName + "] " + event.getMessage + "\n"
+    }
+  }
+  private[core] val stderrAppender = new WriterAppender(logLayout, sys.process.stderr)
+  logger.setLevel(org.apache.log4j.Level.INFO)
+  logger.addAppender(stderrAppender)
+}
diff --git a/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/ToolCommand.scala b/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/ToolCommand.scala
index 067194d3175c91563c041fd3cec06e2fa2bd7678..0a5dc8428cec541fd6cf1b967893e7266bcb1575 100644
--- a/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/ToolCommand.scala
+++ b/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/ToolCommand.scala
@@ -1,14 +1,9 @@
 package nl.lumc.sasc.biopet.core
 
-import java.text.SimpleDateFormat
-import java.util.Calendar
-import org.apache.log4j.Logger
 import org.apache.log4j.WriterAppender
-import org.apache.log4j.helpers.DateLayout
-import org.apache.log4j.spi.LoggingEvent
 import java.io.File
 
-trait ToolCommand extends MainCommand {
+trait ToolCommand extends MainCommand with Logging {
   abstract class AbstractArgs {
   }
 
@@ -45,22 +40,4 @@ trait ToolCommand extends MainCommand {
 
   type Args <: AbstractArgs
   type OptParser <: AbstractOptParser
-
-  protected val logger = Logger.getLogger(commandName)
-
-  private val logLayout = new DateLayout() {
-    val ignoresThrowable = false
-    def format(event: org.apache.log4j.spi.LoggingEvent): String = {
-      val calendar: Calendar = Calendar.getInstance
-      calendar.setTimeInMillis(event.getTimeStamp)
-      val formatter: SimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-      val formattedDate: String = formatter.format(calendar.getTime)
-      var logLevel = event.getLevel.toString
-      while (logLevel.size < 6) logLevel += " "
-      logLevel + " [" + formattedDate + "] [" + event.getLoggerName + "] " + event.getMessage + "\n"
-    }
-  }
-  private val stderrAppender = new WriterAppender(logLayout, sys.process.stderr)
-  logger.setLevel(org.apache.log4j.Level.INFO)
-  logger.addAppender(stderrAppender)
 }
\ No newline at end of file