You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by db...@apache.org on 2016/02/20 00:10:34 UTC

cordova-windows git commit: CB-10640: Windows logging is broken

Repository: cordova-windows
Updated Branches:
  refs/heads/master 51ac7ab16 -> a3536eccd


CB-10640: Windows logging is broken

Fixing the Windows logging


Project: http://git-wip-us.apache.org/repos/asf/cordova-windows/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-windows/commit/a3536ecc
Tree: http://git-wip-us.apache.org/repos/asf/cordova-windows/tree/a3536ecc
Diff: http://git-wip-us.apache.org/repos/asf/cordova-windows/diff/a3536ecc

Branch: refs/heads/master
Commit: a3536eccde1f2bbf8757172d88d3402a4606a99b
Parents: 51ac7ab
Author: Sarangan Rajamanickam <sa...@microsoft.com>
Authored: Wed Feb 17 14:58:30 2016 -0800
Committer: Sarangan Rajamanickam <sa...@microsoft.com>
Committed: Thu Feb 18 12:13:00 2016 -0800

----------------------------------------------------------------------
 template/cordova/lib/log.js | 84 +++++++++++++++++++---------------------
 1 file changed, 40 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/a3536ecc/template/cordova/lib/log.js
----------------------------------------------------------------------
diff --git a/template/cordova/lib/log.js b/template/cordova/lib/log.js
index d01c4af..0245db8 100644
--- a/template/cordova/lib/log.js
+++ b/template/cordova/lib/log.js
@@ -18,39 +18,42 @@
 */
 
 // requires
-var path         = require('path'),
-    et           = require('elementtree'),
-    ConfigParser = require('./ConfigParser.js'),
-    nopt         = require('nopt');
+var path         = require('path');
+var et           = require('elementtree');
+var ConfigParser = require('./ConfigParser.js');
+var nopt         = require('nopt');
 
-var spawn = require('cordova-common').superspawn.spawn;
+var spawn        = require('cordova-common').superspawn.spawn;
+var execSync     = require('child_process').execSync;
 
 // paths
-var platformRoot = path.join(__dirname, '..', '..'),
-    projectRoot  = path.join(platformRoot, '..', '..'),
-    configPath   = path.join(projectRoot, 'config.xml');
+var platformRoot = path.join(__dirname, '..', '..');
+var projectRoot  = path.join(platformRoot, '..', '..');
+var configPath   = path.join(projectRoot, 'config.xml');
 
 //constants
-var APP_TRACING_LOG = 'Microsoft-Windows-AppHost/ApplicationTracing',
-    ADMIN_LOG       = 'Microsoft-Windows-AppHost/Admin';
+var APP_TRACING_LOG = 'Microsoft-Windows-AppHost/ApplicationTracing';
+var ADMIN_LOG       = 'Microsoft-Windows-AppHost/Admin';
+var ONE_MINUTE      = 60 * 1000;
 
 // variables
-var appTracingInitialState = null,
-    appTracingCurrentState = null,
-    adminInitialState      = null,
-    adminCurrentState      = null,
-    timers                 = [],
-    appName;
+var appTracingInitialState = null;
+var appTracingCurrentState = null;
+var adminInitialState      = null;
+var adminCurrentState      = null;
+var timers                 = [];
+var logFromTime            = 10 * ONE_MINUTE; // show last 10 minutes by default
+var appName;
+
 
 /*
  * Gets windows AppHost/ApplicationTracing and AppHost/Admin logs
  * and prints them to console
  */
 module.exports.run = function(args) {
-    var startTime = new Date(new Date().getTime() - 10 * 60 * 1000).toISOString(), // show last 10 minutes by default
-        knownOpts = { 'minutes' : Number, 'dump' : Boolean, 'help' : Boolean },
-        shortHands = { 'mins' : ['--minutes'], 'h' : ['--help'] },
-        parsedOpts = nopt(knownOpts, shortHands, args, 0);
+    var knownOpts  = { 'minutes' : Number, 'dump' : Boolean, 'help' : Boolean };
+    var shortHands = { 'mins' : ['--minutes'], 'h' : ['--help'] };
+    var parsedOpts = nopt(knownOpts, shortHands, args, 0);
 
     if (parsedOpts.help) {
         module.exports.help();
@@ -58,9 +61,9 @@ module.exports.run = function(args) {
     }
     if (parsedOpts.dump) {
         if (parsedOpts.minutes) {
-            startTime = new Date(new Date().getTime() - parsedOpts.minutes * 60 * 1000).toISOString();
+            logFromTime = parsedOpts.minutes * ONE_MINUTE;
         }
-        dumpLogs(startTime);
+        dumpLogs(logFromTime);
         return;
     }
 
@@ -151,26 +154,19 @@ function exitGracefully(exitCode) {
 }
 
 function startLogging(channel) {
-    var startTime = new Date().toISOString();
     timers.push(setInterval(function() {
-        getEvents(channel, startTime).then(function(events) {
-            events.forEach(function (evt) {
-                startTime = evt.timeCreated;
-                console.log(stringifyEvent(evt));
-            });
+        var events = getEvents(channel, logFromTime);
+        events.forEach(function (evt) {
+            console.log(stringifyEvent(evt));
         });
     }, 1000));
 }
 
-function dumpLogs(startTime) {
-    console.log('Dumping logs starting from ' + startTime);
-    var appTracingEvents, adminEvents;
-    getEvents(APP_TRACING_LOG, startTime).then(function (evts) {
-        appTracingEvents = evts;
-        return getEvents(ADMIN_LOG, startTime);
-    }).then(function(evts) {
-        adminEvents = evts;
-        appTracingEvents.concat(adminEvents)
+function dumpLogs(logFromTime) {
+    console.log('Dumping logs starting from ' + logFromTime);
+    var appTracingEvents = getEvents(APP_TRACING_LOG, logFromTime);
+    var adminEvents = getEvents(ADMIN_LOG, logFromTime);
+    appTracingEvents.concat(adminEvents)
         .sort(function(evt1, evt2) {
             if (evt1.timeCreated < evt2.timeCreated) {
                 return -1;
@@ -182,16 +178,16 @@ function dumpLogs(startTime) {
         .forEach(function(evt) {
             console.log(stringifyEvent(evt));
         });
-    });
 }
 
-function getEvents(channel, startTime) {
+function getEvents(channel, logFromTime) {
     var command = 'wevtutil';
-    var args = ['qe', channel, '/q:"*[System [(TimeCreated [@SystemTime>\'' + startTime + '\'])]]"', '/e:root'];
-    return spawn(command, args)
-    .then(function(stdout) {
-        return parseEvents(stdout);
-    });
+    var args    = ['qe', channel, '/q:"*[System [TimeCreated[timediff(@SystemTime)<=' + logFromTime + ']]]"', '/e:root'];
+    command     = command + ' ' + args.join(' ');
+    console.log('Running command: ');
+    console.log('  ' + command);
+    var events  = execSync(command);
+    return parseEvents(events.toString());
 }
 
 function getElementValue(et, element, attribute) {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org