diff --git a/lib/createScriptLogger.js b/lib/createScriptLogger.js
index <HASH>..<HASH> 100644
--- a/lib/createScriptLogger.js
+++ b/lib/createScriptLogger.js
@@ -4,10 +4,22 @@ module.exports = function createLogger () {
   let logs = []
 
   const logFn = (level, ...args) => {
+    const lastArg = args.slice(-1)[0]
+    let msgArgs = args
+    let timestamp
+
+    if (lastArg != null && typeof lastArg === 'object') {
+      msgArgs = args.slice(0, -1)
+
+      if (lastArg.timestamp != null) {
+        timestamp = lastArg.timestamp
+      }
+    }
+
     logs.push({
-      timestamp: new Date().getTime(),
+      timestamp: timestamp != null ? timestamp : new Date().getTime(),
       level: level,
-      message: util.format.apply(util, args)
+      message: util.format.apply(util, msgArgs)
     })
   }
add support for keeping the timestamp of executeScript log if meta object is passed