diff --git a/testable-agent/src/main/java/com/alibaba/testable/agent/PreMain.java b/testable-agent/src/main/java/com/alibaba/testable/agent/PreMain.java
index a3c81bc..246e628 100755
--- a/testable-agent/src/main/java/com/alibaba/testable/agent/PreMain.java
+++ b/testable-agent/src/main/java/com/alibaba/testable/agent/PreMain.java
@@ -9,6 +9,8 @@ import com.alibaba.ttl.threadpool.agent.TtlAgent;
 
 import java.lang.instrument.Instrumentation;
 
+import static com.alibaba.testable.agent.constant.ConstPool.PROPERTY_USER_DIR;
+
 /**
  * Agent entry, dynamically modify the byte code of classes under testing
  * @author flin
@@ -19,6 +21,7 @@ public class PreMain {
         ArgumentParser.parseArgs(agentArgs);
         PropertiesParser.parseFile(ArgumentParser.configFilePath);
         GlobalConfig.setupLogRootPath();
+        LogUtil.info("TestableMock start at %s", System.getProperty(PROPERTY_USER_DIR));
         if (GlobalConfig.shouldEnhanceThreadLocal()) {
             // add transmittable thread local transformer
             TtlAgent.premain(agentArgs, inst);
diff --git a/testable-core/src/main/java/com/alibaba/testable/core/util/LogUtil.java b/testable-core/src/main/java/com/alibaba/testable/core/util/LogUtil.java
index f4493c7..591fac5 100644
--- a/testable-core/src/main/java/com/alibaba/testable/core/util/LogUtil.java
+++ b/testable-core/src/main/java/com/alibaba/testable/core/util/LogUtil.java
@@ -44,6 +44,14 @@ public class LogUtil {
         write(text);
     }
 
+    public static void info(String msg, Object... args) {
+        String text = String.format("[INFO] " + msg + "\n", args);
+        if (currentLogLevel.level >= LogLevel.DEFAULT.level) {
+            System.out.print(text);
+        }
+        write(text);
+    }
+
     public static void warn(String msg, Object... args) {
         String text = String.format("[WARN] " + msg + "\n", args);
         if (currentLogLevel.level >= LogLevel.DEFAULT.level) {