Fix script/screenshots.js variable scope

And improve error messages
diff --git a/script/screenshots.js b/script/screenshots.js
index 5e0c1fa..86f490a 100644
--- a/script/screenshots.js
+++ b/script/screenshots.js
@@ -87,15 +87,16 @@
 
 browserVersions.forEach(function(obj) {
   var cfg = obj.version;
+  var browser = cfg.browserName.replace(/\s/g, '_');
+  var platform = cfg.platform.replace(/\s/g, '_');
+  var piecesDir = allImgsDir+'/'+obj.pinned+'_'+platform+'_'+browser;
+
   cfg.build = build_name;
   var browserDriver = wd.promiseChainRemote('ondemand.saucelabs.com', 80, username, accessKey);
   return browserDriver.init(cfg)
   .then(function(_, capabilities) {
     console.log(cfg.browserName,cfg.platform,'init');
 
-    var browser = cfg.browserName.replace(/\s/g, '_');
-    var platform = cfg.platform.replace(/\s/g, '_');
-    var piecesDir = allImgsDir+'/'+obj.pinned+'_'+platform+'_'+browser;
     fs.mkdirSync(piecesDir);
 
     return browserDriver;
@@ -116,12 +117,16 @@
       console.log(cfg.browserName, cfg.platform, 'about to saveScreenshot');
       return browserDriver.saveScreenshot(filename)
       .then(willLog(cfg.browserName,cfg.platform,'saveScreenshot'))
-      .log('browser')
+      .then(function() {
+        return browserDriver.log('browser')
+        .then(willLog(cfg.browserName,cfg.platform,'log'), function(err) {
+          // the Edge/Internet Explorer drivers don't support logs, but the others do
+          console.log(cfg.browserName, cfg.platform, 'Error fetching logs:', JSON.stringify(err, null, 2));
+          return [];
+        });
+      })
       .then(function(logs) {
-        console.log(cfg.browserName,cfg.platform,'log');
-
         var logfile = baseDir+'/'+browser+'_'+platform+'.log'
-        logs = logs || [];
         return new Promise(function(resolve, reject) {
           fs.writeFile(logfile,logs.join('\n'), function(err) {
             if (err) return reject(err);
@@ -169,12 +174,16 @@
                 var filename = piecesDir+'/'+index+'.png';
                 return browserDriver.saveScreenshot(filename)
                 .then(willLog(cfg.browserName,cfg.platform,'saveScreenshot Final'))
-                .log('browser')
+                .then(function() {
+                  return browserDriver.log('browser')
+                  .then(willLog(cfg.browserName,cfg.platform,'log'), function(err) {
+                    // the Edge/Internet Explorer drivers don't support logs, but the others do
+                    console.log(cfg.browserName, cfg.platform, 'Error fetching logs:', JSON.stringify(err, null, 2));
+                    return [];
+                  });
+                })
                 .then(function(logs) {
-                  console.log(cfg.browserName,cfg.platform,'log');
-
                   var logfile = baseDir+'/'+browser+'_'+platform+'.log'
-                  logs = logs || [];
                   return new Promise(function(resolve, reject) {
                     fs.writeFile(logfile,logs.join('\n'), function(err) {
                       if (err) return reject(err);
@@ -194,14 +203,15 @@
     }
   })
   .fail(function(err) {
-    console.log(JSON.stringify(obj, null, 2));
+    console.log('ERROR:', cfg.browserName, cfg.platform);
+    console.log(JSON.stringify(err, null, 2));
   });
 
   function willLog() {
-    var msg = [].join.call(arguments);
-    return function() {
+    var msg = [].join.call(arguments, ' ');
+    return function(value) {
       console.log(msg);
-      return browserDriver;
+      return value;
     };
   }
 });